![]() |
Indy 10 Email anhang speichern (outlook indy)
Hi.
schreib grad ein programm mit dem es unteranderem möglich sein soll emails mit anhang zu senden und zu empfangen. beim empfang soll dann nur der anhang gespeichert werden (welcher immer eine txt datei ist). Soweit so gut. Versende ich von meinem Programm eine E-Mail mit einer text datei als anhang, so kann ich die mit meinem Programm empfangen und den anhang speichern. Will ich sie mit Outlook 2003 empfangen klappt das auch ordnungsgemäß. Aber verschicke ich eine Email die genauso aufgebaut ist mit outlook und packe die selbe datei in den anhang. bekomme ich in folgender codezeile eine Exception:
Delphi-Quellcode:
Zum Test habe ich dann mit meinem programm und mit oulook eine email verschickt und sie in meinem programm beim herunterladen als .msg gespeichert.
TIdAttachmentMemory(hintergrundform.HintergrundForm1.IDMessage1.MessageParts.Items[0]).SaveToFile(pfad + hintergrundform.HintergrundForm1.IDMessage1.Subject);
Abgesehen davon das sie sehr unterschiedlich aussehen habe ich noch festgestellt das mein programm den email anhang verschlüsselt. bei ihr steht: Content-Transfer-Encoding: base64 bei outlook: Content-Transfer-Encoding: quoted-printable hat jemand eine lösung wie ich mit meinem programm alle emails abrufen kann und jeden dateianhang abspeichere??? |
Re: Indy 10 Email anhang speichern (outlook indy)
hat den keiner
ne lösung oder zumindest einen tip? |
Re: Indy 10 Email anhang speichern (outlook indy)
hat sich erledigt...
outlook hängt anscheinend noch daten als messagepart ran... so klappts:
Delphi-Quellcode:
try for y := 0 to HintergrundForm1.IDMessage1.MessageParts.Count -1do if (HintergrundForm1.IDMessage1.MessageParts[y] is TIdAttachment) then begin TIdAttachmentMemory(HintergrundForm1.IDMessage1.MessageParts.Items[y]).SaveToFile(pfad + HintergrundForm1.IDMessage1.Subject); end ; except end; |
Re: Indy 10 Email anhang speichern (outlook indy)
klappt doch nich so ganz...
hätte mal in die textdatei reinschauen sollen. der speichert mir da irgendwelchen wilden hex code :( edit: ok den wilden hex speichert er nur wenn es sich um eine html mail handelt und zb ein image drin ist (signatur); wenn in der html mail reiner text ist speichert er die txt korrekt ebenso wenn es sich um eine textmail handelt. wie kann ich das abfangen? |
Re: Indy 10 Email anhang speichern (outlook indy)
Hallo,
leider habe ich INDY9 installiert, also nur damit du nicht zum Alleinunterhalter entartest: Jeder MessagePart hat eine Eigenschaft IsEncoded, die Aufschluss darüber geben sollte, ob der entsprechende Part MIME-kodiert wurde oder nicht. Freundliche Grüße |
Re: Indy 10 Email anhang speichern (outlook indy)
juhu ne antwort:)
danke hab ich vorhin auch schon probiert hab mir bei jedem msg part ausgeben lassen ob es encodet is
Delphi-Quellcode:
jedesmal hat der mir nen false rausgehauen O_o
showmessage(booltostr(hintergrundform1.idmessage1.IsBodyEncodingRequired));
|
Re: Indy 10 Email anhang speichern (outlook indy)
Und noch eine Antwort: Dein Text und dein Code passen irgendwie nicht zusammen.
Ich hatte eher sowas gemeint:
Delphi-Quellcode:
Ansonsten: Für Indy9 gibt es eine Demo "MailClient" - vielleicht gibt es die auch für Indy10. Wenn nicht, dann ist der Unterschied bestimmt auch nicht so groß, dass man nicht etwas davon lernen könnte.
var
msg: TIdMessage; part: TIdMessagePart; i: Integer; begin // ... for i := 0 to Pred(msg.MessageParts.Count) do begin part := msg.MessageParts.Items[i]; ShowMessage(BoolToStr(part.IsEncoded, True)); // ... end; // ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:07 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