![]() |
Indy Mail Mime Problem
Hallo
Ich habe einen MailClient mit den Indy Komponenten unter Delphi 6 erstellt und nun ein Problem festgestellt wenn ich Mime Mails erhalte in diesem Falle jedoch nur die die von eBay automatisch erstellt wurden.. Der Text wird als Mime Anhang mitgeschickt sowohl in Plain als auch in Html allerdings erhält TIDMessageParts dies immer als TIDAttachment und nicht als TIDText und dieses Attachment lässt sich nicht mal als Text Datei speichern und ich weiß jetzt nicht wie ich auf den Mime Text zugreifen kann. Hier einmal der Code:
Code:
Ich hab auch schon probiert den Anhang zu wandeln bekomm aber immer die Meldung unterschiedliche Typen
for p := 0 to EMail.MessageParts.Count-1 do
begin if (EMail.MessageParts.Items[p] is TIdText) then begin F_main.Q_MailPLAIN.AsString := (EMail.MessageParts[p] as TIdText).Body.Text; end else if (EMail.MessageParts.Items[p] is TIdAttachment) then begin with EMail.MessageParts[p] as TIdAttachment do begin // Message part is an attachment F_main.Q_MailANHANG.AsString := 'J'; AttachmentFileName := ExtractFilePath(Application.ExeName) + F_main.Q_MailID.AsString + '\' + FileName; if DirectoryExists(ExtractFileDir(AttachmentFileName)) = false then CreateDir(ExtractFileDir(AttachmentFileName)); if FileExists(AttachmentFileName) then F_main.Q_MailANHAENGE.AsString := F_main.Q_MailANHAENGE.AsString + AttachmentFileName + ';' else if SaveToFile(AttachmentFileName) then F_main.Q_MailANHAENGE.AsString := F_main.Q_MailANHAENGE.AsString + AttachmentFileName + ';'; end; end; end;
Code:
Ich hoffe damit kann mir jemand helfen.
s1 := EMail.MessageParts[p].ContentType;
if pos('TEXT/PLAIN',UpperCase(s1)) > 0 then F_main.Q_MailPLAIN.AsString := (EMail.MessageParts.Items[p] as TIdText).Body.Text; |
Re: Indy Mail Mime Problem
So bin zwar noch nicht wirklich weiter aber da mir bisher noch niemand helfen konnte werd ich mal etwasd näher drauf eingehen
Also das ist das was ich als Anhangsheader erhalte: Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset: "ISO-8859-1" So das es doch eigentlich klar ist das es ein Anhang vom Typ TIdText ist.. Ich hab mir dann mal die entsprechende Stelle (jedenfalls hoff ich das das die richtige Stelle im Indy Source gesucht (IdMessageClient.pas):
Code:
Nur komm ich damit nicht wirklich klar.. und so wie ich das versteh müßt das doch auch korrekt funktionieren da in cRet nie Name steht dafür aber Text gefunden werden müßte zumindest wenn cRet wirklich immer zu Headers hinzugefügt wird naja
if (StateIn > State_EndData) then
begin if not Created then begin if ( (AnsiPos('name', LowerCase(cRet)) = 0) and (AnsiPos('text', LowerCase(cRet)) <> 0) or {do not localize} (AnsiPos('multipart', LowerCase(cRet)) <> 0) or {do not localize} (AnsiPos('message', LowerCase(cRet)) <> 0) or {do not localize} (AnsiPos('attachment', LowerCase(cRet)) <> 0) or {do not localize} (LowerCase(cRet) := 'content-type:') ) then IMFDecoder^.MP := TIdText.Create(AMsg.MessageParts) else IMFDecoder^.MP := TIdAttachment.Create(AMsg.MessageParts); Created := True; end; with IMFDecoder^.MP do begin Boundary := cRet; BoundaryBegin := True; Headers.Add(cRet); end; AddedTo := True; SingleIgnore := True; end; vielleicht kann mir ja jetzt einer von euch besser helfen heldvomfeld |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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