![]() |
SendMail mit Anhang
Hallo Zusammen,
zu diesem Thema findet man eine Menge und ich habe stundenlang gesucht, aber mein Problem nicht lösen können. Daher frage ich Euch jetzt direkt, in der Hoffnung auf Hilfe. Ich möchte eine Excel-Datei per HTML Mail verschicken. Der Mailversand ohne Anhang funktioniert wunderbar, aber wenn ich den Anhang mit dem nachfolgenden Code hinzufügen möchte, wird statt der Datei meiner Mail nur der Text "This is a multi-part message in MIME format --kY0d7MlcKs6drZEFnrME2Wo=_AYnzRxoH1 Content-Type: text/plain Content-Transfer-Encoding: 8bit " voran gestellt.
Delphi-Quellcode:
Hat jemand eine Idee, warum das bei mir nicht klappt??
function SendEmail(Recipient:string;CCList:string;sSubject:string;Body:TStringList; Pfad: string):boolean;
var nAlarmnr:integer; Attachment: TIdAttachment; begin idSMTP:=TidSMTP.Create; idMessage:=TidMessage.Create; idSMTP.Host := 'XXX'; idSMTP.Username := 'XXXXXXXX'; idSMTP.Password := 'XXXXX'; idSMTP.Port := XX; idMessage.From.text :='XXX@XXXX.de'; idMessage.Sender.text:=idMessage.From.text; idMessage.Recipients.EMailAddresses:= Recipient; idMessage.CCList.EMailAddresses := CCList; idMessage.Subject:=sSubject; idMessage.ContentType := 'text/html'; idMessage.Body.Clear; idMessage.Body := Body; Attachment := TIdAttachmentFile.Create(IdMessage.MessageParts, Pfad); idMessage.ContentType := 'text/html'; try idSMTP.Connect; idSMTP.Send(idMessage); idSMTP.Disconnect; result:=True; except on E : Exception do begin if idSMTP.connected then try idSMTP.disconnect; except end; result := false; end; end; end; Vielen Dank Ykcim |
AW: SendMail mit Anhang
ist eine Weile her bei mir, AFAIK musst Du die Mail
ContentType:='multipart/*'; erstellen und den HTML Teil per
Code:
erstellen, wenn es nicht stimmt bitte ich um Verzeihung, ich verwende die INDY's seit längerem nicht mehr...
with TIdText.Create(Msg.MessageParts, DEINTEXT) do
begin ContentType:='text/html'; end; with TIdAttachmentFile.Create(msg.MessageParts, DEINFILE) do ..... ... Msg.MessageParts.Add(); |
AW: SendMail mit Anhang
Hallo, !TEILERFOLG!
vielen Dnak für die Antwort - ein echter Teilerfolg: Jetzt wird die Datei mitgeschickt, aber die Mail ist nicht mehr im HTML-Format und es wird der HTML-Code gezeigt... Hat dafür jemand eine Lösung? Vielen Dank Ykcim |
AW: SendMail mit Anhang
Hallo,
so funktioniert es jetzt:
Delphi-Quellcode:
function SendEmail(Recipient:string;CCList:string;sSubject:string;Body:TStringList; Pfad: string):boolean;
var nAlarmnr:integer; Attachment: TIdAttachment; begin idSMTP:=TidSMTP.Create; idMessage:=TidMessage.Create; idSMTP.Host := 'XXX.XXX.XXX.XXX'; idSMTP.Username := 'XXXXXX'; idSMTP.Password := 'XXXX'; idSMTP.Port := XX; idMessage.From.text :='XX@XXXXXX.de'; idMessage.Sender.text:=idMessage.From.text; idMessage.Recipients.EMailAddresses:= Recipient; idMessage.CCList.EMailAddresses := CCList; idMessage.Subject:=sSubject; idMessage.ContentType:='multipart/*'; with TidText.Create(idMessage.MessageParts,body) do begin contenttype:='text/html'; end; with TIdAttachmentFile.Create(idMessage.MessageParts, Pfad) do begin idMessage.MessageParts.Add(); end; try idSMTP.Connect; idSMTP.Send(idMessage); idSMTP.Disconnect; result:=True; except on E : Exception do begin if idSMTP.connected then try idSMTP.disconnect; except end; result := false; end; end; end; Vielen Dank für die Hilfe |
AW: SendMail mit Anhang
Hab ich was übersehen, oder erzeugst Du Dir Speicherlecks?
|
AW: SendMail mit Anhang
Wo und wie?
Bin für jede Anregung zu haben... Ykcim |
AW: SendMail mit Anhang
Du gibst z.B. IdSMTP nicht frei.
Generell solltest Du Dir angewöhnen IMMER Ressourcenschutzblöcke zu verwenden, wenn Du Instanzen von Klassen erstellst.
Delphi-Quellcode:
Instanz := TMyClass.Create;
Try ... mach was mit der Instanz Finally Instanz.free; End |
AW: SendMail mit Anhang
Ich sehe da 4 mal Create, aber nicht 1 mal Free. Üblicherweise macht man das ja so:
Delphi-Quellcode:
[edit] :lol: [/edit]
Dings := TDings.Create;
try Dings.MachWas; finally Dings.Free; end; |
AW: SendMail mit Anhang
Guten Abend,
ich habe auf diesem Gebiet eine ganz große Lücke... Kann mir jemand das "try" and "finally" mal für meine beschriebene Prozedur zeigen. Ich hoffe, dass ich dann den Zusammenhang verstehe. Ich habe es selber versucht, aber nur Errors bekommen. Vielen Dank Ykcim |
AW: SendMail mit Anhang
DeddyH hat dir doch ein Beispiel gepostet.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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