Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Mail mit Inline Images und Indy - keine Bildanzeige Smartphone (https://www.delphipraxis.net/188139-mail-mit-inline-images-und-indy-keine-bildanzeige-smartphone.html)

dataspider 3. Feb 2016 14:39

Mail mit Inline Images und Indy - keine Bildanzeige Smartphone
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Ich habe ein Problem mit Inline - Images. Ich habe den auf das Wesentliche reduzierten Code angehangen.

Wenn ich die Mail versende, bekomme ich die Bilder in Lotus Notes und Outlook korrekt angezeigt.
Auf meinem Blackberry Leep und auf einem Android - Smartphone werden die Bilder nicht angezeigt.

In der Mail - Klasse kann man meine Versuche ja erkennen. Auch die neue MessageBuilder Klasse liefert nicht das gewünschte Ergebnis.

Ich denke, es fehlt irgendwo noch eine Kodierung (Quoted Printable oder so...).

Vielleicht hat ja schon mal jemand diese Nuss geknackt und hat eine Idee.

Danke

Frank

dataspider 4. Feb 2016 09:57

AW: Mail mit Inline Images und Indy - keine Bildanzeige Smartphone
 
Es scheint jetzt zu funktionieren.

Nachdem mir aufgefallen ist, dass Content-Disposition hier auch den Dateinamen enthält, habe ich die Mailheader der Inline - Images vor dem Senden noch mal manipuliert:


Delphi-Quellcode:
procedure TSMTPMail.CheckMail(AMail: TIdMessage);
Var
  I: Integer;
  APart: TIdMessagePart;
  AFileName: string;
  s: string;
begin
  AMail.MessageParts.CountParts;
  for I := 0 to AMail.MessageParts.Count - 1 do
  begin
    APart := AMail.MessageParts[I];
    if (APart.ContentDisposition = 'inline') then
    begin
      s := APart.Headers.Values['Content-ID'];
      if s <> '' then
      begin
        AFileName := Copy(s, 2, Length(s) - 2); // ohne <>
        APart.Headers.Values['Content-Disposition'] := 'inline; filename="' +
          AFileName + '"';
      end;
    end;
  end;
end;
Damit anstatt nur 'inline' 'inline; filename="image001.jpg"' steht.

Jetzt werden die Bilder auch unter Android und Blackberry OS angezeigt.

Vielleicht wird es in Indy ja mal geändert.

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz