AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi MIME-Mails im TWebbrowser (Indy)
Thema durchsuchen
Ansicht
Themen-Optionen

MIME-Mails im TWebbrowser (Indy)

Ein Thema von Grolle · begonnen am 19. Jun 2006 · letzter Beitrag vom 22. Jun 2006
Antwort Antwort
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#1

MIME-Mails im TWebbrowser (Indy)

  Alt 19. Jun 2006, 22:58
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...

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: MIME-Mails im TWebbrowser (Indy)

  Alt 20. Jun 2006, 08:49
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
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#3

Re: MIME-Mails im TWebbrowser (Indy)

  Alt 20. Jun 2006, 09:35
Hallo Marabu,

die Mails sortiere ich wie folgt nach Text oder Html-Mail:
Delphi-Quellcode:
      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;
BEi reinen HTML- bzw. Textmails klappt das auch ohne Probleme. Bei MIME-Mails
sieht das dann so im Webbrowser aus:

Zitat:
This is a multi-part message in MIME format.--------------040509000609040303060109 Content-Type: multipart/alternative; boundary="------------000209040805070105090501"--------------
000209040805070105090501 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Text der dargestellt werden sollte
--

http://www.stefangöppert.de <http://www.stefang%F6ppert.de>

... usw.
In der Mail steht eigentlich dann nur noch unlesbarer Text (bzw. wird so dargestellt)!?

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: MIME-Mails im TWebbrowser (Indy)

  Alt 20. Jun 2006, 09:54
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
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#5

Re: MIME-Mails im TWebbrowser (Indy)

  Alt 22. Jun 2006, 00:18
Hi,

ich habe den Code jetzt so erweitert:
Delphi-Quellcode:
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;
Jetzt werden die anderen Mails nicht vernünftig dargestellt?!?

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: MIME-Mails im TWebbrowser (Indy)

  Alt 22. Jun 2006, 07:57
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
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#7

Re: MIME-Mails im TWebbrowser (Indy)

  Alt 22. Jun 2006, 09:25
Hallo,
ich habs jetzt umgedreht und die Text- und HTML-Mails werden wieder korrekt angezeigt.
Bei den MIME-Mails steht jetzt allerdings nur:
Zitat:
This is a multi-part message in MIME format.
Das ist alles?!? Ist das jetzt der falsche Part, oder wo liegt der Fehler? In der Indy-Doku
kann ich diesbezüglich nix finden

Viele Grüße...

  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: MIME-Mails im TWebbrowser (Indy)

  Alt 22. Jun 2006, 09:31
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 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