![]() |
MIME-Mails im TWebbrowser (Indy)
Hi,
kann mir jemand einen Weg empfehlen, wie ich MIME-Type Mails vernunftig im TWebbrowser darstellen kann? (HTML-Mails speichere ich und lade sie dann in den TWebbrowser) Viele Grüße... |
Re: MIME-Mails im TWebbrowser (Indy)
Hallo Stefan,
kannst du etwas genauer erklären, was exakt dein Problem ist? Du schreibst, dass du HTML-Mails speicherst und dann in die WebBrowser-Komponente lädst. Ist die Anzeige nicht korrekt? Kannst du eine TestMail zur Verfügung stellen? Grüße vom marabu |
Re: MIME-Mails im TWebbrowser (Indy)
Hallo Marabu,
die Mails sortiere ich wie folgt nach Text oder Html-Mail:
Delphi-Quellcode:
BEi reinen HTML- bzw. Textmails klappt das auch ohne Probleme. Bei MIME-Mails
begin
pop.Retrieve(StrToInt(headers.Selected.SubItems.Strings[2]), IdMessage1); IdMessage1.Body.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.html'); list := TStringList.Create; list.LoadFromFile(ExtractFilePath(ParamStr(0))+'temp.html'); for i := 0 to list.Count-1 do begin if pos('<html>',list.Text) = 0 then begin html := TStringList.Create; html.Add('<html>'); html.Add(' <body>'); html.Add(' <pre>'); html.AddStrings(list); html.Add(' </pre>'); html.Add(' </body>'); html.Add('</html>'); html.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.html'); html.free; end; end; list.Free; WebBrowser1.Navigate(ExtractFilePath(ParamStr(0))+'temp.html'); end; sieht das dann so im Webbrowser aus: Zitat:
|
Re: MIME-Mails im TWebbrowser (Indy)
Hallo Stefan,
nach dem Retrieve(id, msg) solltest du mit msg.IsEncoded prüfen ob eine MIME encoded mail vorliegt. Wenn ja, dann solltest du über msg.MessageParts versuchen auf den Content zuzugreifen. marabu |
Re: MIME-Mails im TWebbrowser (Indy)
Hi,
ich habe den Code jetzt so erweitert:
Delphi-Quellcode:
Jetzt werden die anderen Mails nicht vernünftig dargestellt?!?
procedure TForm1.ToolButton2Click(Sender: TObject);
var i : integer; begin if headers.Selected = nil then Exit; IdMessage1.Clear; if not pop.Connected then pop.Connect; try if pop.CheckMessages > 0 then begin pop.Retrieve(StrToInt(headers.Selected.SubItems.Strings[2]), IdMessage1); if IdMessage1.IsEncoded then IdMessage1.Body.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.html') else begin for i := 0 to IdMessage1.MessageParts.Count-1 do begin if IdMessage1.MessageParts.Items[i] is TIdText then TIdText(IdMessage1.MessageParts.Items[i]).Body.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.html'); end; end; WebBrowser1.Navigate(ExtractFilePath(ParamStr(0))+'temp.html'); end finally pop.Disconnect; end; end; |
Re: MIME-Mails im TWebbrowser (Indy)
Hallo Stefan,
sieht aus als ob du Aktion und Bedingung falsch zuordnest - oder? Wenn die mail MIME-kodiert ist (IsEncoded) dann sollst du die MessageParts untersuchen. Testen kann ich es leider nicht. marabu |
Re: MIME-Mails im TWebbrowser (Indy)
Hallo,
ich habs jetzt umgedreht und die Text- und HTML-Mails werden wieder korrekt angezeigt. Bei den MIME-Mails steht jetzt allerdings nur: Zitat:
kann ich diesbezüglich nix finden :? Viele Grüße... |
Re: MIME-Mails im TWebbrowser (Indy)
Bei mehreren Parts überschreibst du die Ausgabe mehrfach und zeigst nur den zuletzt geschriebenen Inhalt an - und der scheint nicht das gesuchte zu sein. Schau doch da noch mal nach.
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz