AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Html mails empfangen

Html mails empfangen

Ein Thema von Wadim · begonnen am 23. Jan 2004 · letzter Beitrag vom 25. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2   
Wadim

Registriert seit: 31. Aug 2003
185 Beiträge
 
#1

Html mails empfangen

  Alt 23. Jan 2004, 17:22
hi,

hier hab ich ein beispiel email programm - das auch geht, nur leider kann ich keine html emails empfangen - kann mir vielleicht einer sagen wie der quellcode heißt oder wo ich ihn einfügen soll??

hab hier auch schon im forum rumgesucht aber immer nur was von html mails versenden gefunden

danke für die hilfe

mfg wadim
Angehängte Dateien
Dateityp: rar mailclient.rar (44,3 KB, 49x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Html mails empfangen

  Alt 23. Jan 2004, 23:36
Hi!

Kannst du sie nicht empfangen oder nur nicht darstellen?
Sind HTML-Mails nicht einfach nur Text-Mails mit Quelltext anstatt unformatiertem Text?
Vielleicht irre ich mich, aber nur so als Gedanke.

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#3

Re: Html mails empfangen

  Alt 24. Jan 2004, 02:18
ZumBeispiel so:

1. Setze über dem Memo1 einen TWebBrowser rein, setze om OI Align auf alClient.

2. Finde die Prozedur
procedure TfrmMain.RetrieveExecute(Sender: TObject); 3. Setze zunächst am Anfang der Prozedur
   WebBrowser1.Visible := false; 4. Finde folgende Zeilen:
Delphi-Quellcode:
            begin //body text
               if Msg.MessageParts.Items[intIndex] is TIdText then
                  begin
                    Memo1.Lines.Clear;
                    Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex]).Body);
                  end;
5. Ersetze sie durch folgendes:
Delphi-Quellcode:
            begin //body text
               if Msg.MessageParts.Items[intIndex] is TIdText then
                  begin
                     If (Msg.MessageParts.Items[intIndex].ContentType = 'text/html') or
                        (Pos('text/html' + ';', Msg.MessageParts.Items[intIndex].ContentType) = 1) then
                       begin
                         WebBrowser1.Visible := true;
                         Memo1.Visible := false;

                         TIdText(Msg.MessageParts.Items[intIndex]).Body.SaveToFile('C:\_temp.htm');
                         WebBrowser1.Navigate('C:\_temp.htm');
                       end
                     else
                       begin
                         Memo1.Lines.Clear;
                         Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex]).Body);
                       end;
                  end;
'C:\_temp.htm' kannst du natürlich auch woanders speichern und später wieder löschen.

PS: Irgendwas stimmt mit diesem Demo allerdings nicht: Bei manchen Mails gibt er weder Text noch HTML aus (war schon vor meiner Änderung so).
  Mit Zitat antworten Zitat
Wadim

Registriert seit: 31. Aug 2003
185 Beiträge
 
#4

Re: Html mails empfangen

  Alt 26. Jan 2004, 19:05
hmm - ja so änlich hab ich es auch schon versucht, aber es klapt ja noch immer nicht

weiß vielleicht einer was da an der demo nicht funzt, das es keine html mails anzeigen kann??

ich glaubt das er die html mails gernicht runterläd, aber das ist nur eine vermutung

oder kennt vielleicht jemand eine andere demo die vielleicht funzt?? - bin für jede hilfe sehr dankbar
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#5

Re: Html mails empfangen

  Alt 27. Jan 2004, 02:04
Hab den anderen Fehler gefunden. So gehts auf jeden Fall:
Delphi-Quellcode:
procedure TfrmMain.RetrieveExecute(Sender: TObject);
var
   stTemp: string;
   intIndex: Integer;
   li: TListItem;
begin
   stTemp := Statusbar1.Panels[1].text;
   if lvHeaders.Selected = nil then
      begin
         Exit;
      end;
   //initialise
   Showbusy(true);
   Msg.Clear;
   Memo1.Clear;
   lvMessageParts.Items.Clear;
   From.Caption := '';
   Cc.Caption := '';
   Subject.Caption := '';
   Date.Caption := '';
   Receipt.Caption := '';
   Organization.Caption := '';
   Priority.Caption := '';
   pnlAttachments.visible := false;
   WebBrowser1.Visible := false;
   Memo1.Visible := true;

   //get message and put into MSG
   ShowStatus('Retrieving message "' + lvHeaders.Selected.SubItems.Strings[3] + '"');
   POP.Retrieve(lvHeaders.Selected.Index + 1, Msg);
   statusbar1.Panels[0].text := lvHeaders.Selected.SubItems.Strings[3];

   //Setup fields on screen from MSG
   From.Caption := Msg.From.Text;
   Recipients.Caption := Msg.Recipients.EmailAddresses;
   Cc.Caption := Msg.CCList.EMailAddresses;
   Subject.Caption := Msg.Subject;
   Date.Caption := FormatDateTime('dd mmm yyyy hh:mm:ss', Msg.Date);
   Receipt.Caption := Msg.ReceiptRecipient.Text;
   Organization.Caption := Msg.Organization;
   Priority.Caption := IntToStr(Ord(Msg.Priority) + 1);

   // Manchmal hat die Mail keine mehreren Parts, dann muss man sie komplett laden
   If (Msg.ContentType = 'text/plain') or
      (Pos('text/plain' + ';', Msg.ContentType) = 1) then
     begin
       Memo1.Lines.Clear;
       Memo1.Lines.AddStrings(Msg.Body);
     end
   else
   If not (Msg.MessageParts.Count > 0) then
     begin
       Memo1.Lines.Clear;
       Memo1.Lines.Add('UNKNOWN CONTENT TYPE: ' + '"' + Msg.ContentType + '"');
       Memo1.Lines.AddStrings(Msg.Body);
     end;

   //Setup attachments list
   ShowStatus('Decoding attachments (' + IntToStr(Msg.MessageParts.Count) + ')');
   //ShowMessage('uhu');
   for intIndex := 0 to Pred(Msg.MessageParts.Count) do
      begin
         if (Msg.MessageParts.Items[intIndex] is TIdAttachment) then
            begin //general attachment
               pnlAttachments.visible := true;
               li := lvMessageParts.Items.Add;
               li.ImageIndex := 8;
               li.Caption := TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename;
               li.SubItems.Add(TIdAttachment(Msg.MessageParts.Items[intIndex]).ContentType);
            end
         else
            begin //body text
               if Msg.MessageParts.Items[intIndex] is TIdText then
                  begin
                     If (Msg.MessageParts.Items[intIndex].ContentType = 'text/html') or
                        (Pos('text/html' + ';', Msg.MessageParts.Items[intIndex].ContentType) = 1) then
                       begin
                         WebBrowser1.Visible := true;
                         Memo1.Visible := false;

                         TIdText(Msg.MessageParts.Items[intIndex]).Body.SaveToFile('C:\_temp.htm');
                         WebBrowser1.Navigate('C:\_temp.htm');
                       end
                     else
                       begin
                         Memo1.Lines.Clear;
                         Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex]).Body);
                       end;

               pnlAttachments.visible := true;
               li := lvMessageParts.Items.Add;
               li.ImageIndex := 8;
               If (Msg.MessageParts.Items[intIndex].ContentType = 'text/html') or
                  (Pos('text/html' + ';', Msg.MessageParts.Items[intIndex].ContentType) = 1) then
                 begin
                   li.Caption := '[HTML]';
                 end
               else
                 begin
                   li.Caption := '[Text]';
                 end;
               li.SubItems.Add(Msg.MessageParts.Items[intIndex].ContentType);
               
                  end
               else
                  begin
               pnlAttachments.visible := true;
               li := lvMessageParts.Items.Add;
               li.ImageIndex := 8;
               li.Caption := '[Other]';
               li.SubItems.Add(Msg.MessageParts.Items[intIndex].ContentType);
                  end;
            end;
      end;
   ShowStatus(stTemp);
   Showbusy(false);
end;
  Mit Zitat antworten Zitat
Wadim

Registriert seit: 31. Aug 2003
185 Beiträge
 
#6

Re: Html mails empfangen

  Alt 27. Jan 2004, 14:13
SUUPPPEEEERRRR ^3

fetten danke an dich - klapt alles

mfg wadim
  Mit Zitat antworten Zitat
einfach112
(Gast)

n/a Beiträge
 
#7

Re: Html mails empfangen

  Alt 19. Jul 2006, 22:36
Hallo ! Also diese Demo ist ja echt super!
Nur ein klitze kleines problem habe ich bei der ganzen sache !
ich würde mir gerne nur ganz bestimmte mails anzeigen lassen !
Also z.B. nur Emails die im Betreff stehen haben 'Wichtige Info'
oder vieleicht die vom absender 'Mail@mail.de' sind !
Habe jetzt schon stunden versucht mich irgendwo da zwischen den code zu fummeln aber leider nur immer
fehlermeldungen .....
Kann mir vieleicht einer sagen wo und wie ich das am besten anstell ?
Thx schon mal im voraus !
cu
einfach112
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#8

Re: Html mails empfangen

  Alt 19. Jul 2006, 22:48
HI!

Was hast du denn genau gemacht bisher und was gab es dabei für Fehlermeldungen?


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Wadim

Registriert seit: 31. Aug 2003
185 Beiträge
 
#9

Re: Html mails empfangen

  Alt 24. Aug 2006, 22:52
hi,

kann mir einer sagen warum bei delphi 2005 personal er bei diesem quellcode nicht klarkommt?

genau hier (zwischen fehler), sagt der mir folgende fehlermeldung:

Operator ist auf diesem Operantentyp nicht anwendbar, mit delphi 7 klappt das alles wunderbar aber bei der 2005 Version kommt halt diese Fehlermeldung, bin absolut ratlos

Code:
for intIndex := 0 to Pred(Msg.MessageParts.Count) do
      begin
         if (Msg.MessageParts.Items[intIndex] is [fehler]TIdAttachment[/fehler]) then
            begin //general attachment
               pnlAttachments.visible := true;
               li := lvMessageParts.Items.Add;
               li.ImageIndex := 8;
               li.Caption := TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename;
               li.SubItems.Add(TIdAttachment(Msg.MessageParts.Items[intIndex]).ContentType);
            end
         else
            begin //body text
               if Msg.MessageParts.Items[intIndex] is [fehler]TIdText[/fehler]then
                  begin
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#10

Re: Html mails empfangen

  Alt 24. Aug 2006, 23:42
Hi!

Probiere mal das "Argument" der if-Abfrage zu klammern...


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:05 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