![]() |
Html mails empfangen
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
Re: Html mails empfangen
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 |
Re: Html mails empfangen
ZumBeispiel so:
1. Setze über dem Memo1 einen TWebBrowser rein, setze om OI Align auf alClient. 2. Finde die Prozedur
Delphi-Quellcode:
3. Setze zunächst am Anfang der Prozedur
procedure TfrmMain.RetrieveExecute(Sender: TObject);
Delphi-Quellcode:
4. Finde folgende Zeilen:
WebBrowser1.Visible := false;
Delphi-Quellcode:
5. Ersetze sie durch folgendes:
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;
Delphi-Quellcode:
'C:\_temp.htm' kannst du natürlich auch woanders speichern und später wieder löschen.
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; PS: Irgendwas stimmt mit diesem Demo allerdings nicht: Bei manchen Mails gibt er weder Text noch HTML aus (war schon vor meiner Änderung so). |
Re: Html mails empfangen
hmm - ja so änlich hab ich es auch schon versucht, aber es klapt ja noch immer nicht :wall:
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 :gruebel: oder kennt vielleicht jemand eine andere demo die vielleicht funzt?? - bin für jede hilfe sehr dankbar |
Re: Html mails empfangen
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; |
Re: Html mails empfangen
SUUPPPEEEERRRR ^3 :thuimb: :thuimb: :thuimb: :thuimb:
fetten danke an dich :hello: - klapt alles :P mfg wadim |
Re: Html mails empfangen
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 |
Re: Html mails empfangen
HI!
Was hast du denn genau gemacht bisher und was gab es dabei für Fehlermeldungen? Ciao Frederic |
Re: Html mails empfangen
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 |
Re: Html mails empfangen
Hi!
Probiere mal das "Argument" der if-Abfrage zu klammern... Ciao, Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 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