![]() |
mehrere Mailanhänge in einer Schleife
bzw. wie erzeuge ich eine unbekannte Anzahl Variablen vom Typ TMapiFileDesc zur Laufzeit (je nachdem wieviel Dateien ich im Ordner finde).
Hier ein bisschen Quelltext
Delphi-Quellcode:
procedure SendmailMapi(...)
var FileAttach: TMapiFileDesc; ... begin ... erg := FindFirst(Ordner + '*.*', faAnyFile, Info); while (erg = 0) do begin try if (info.name <> '.') and (info.name <> '..') then begin // hier würde ich gerne jedes mal eine neue Variable vom Typ TMapiFileDesc erzeugen // ohne FileAttach2,FileAttach3 usw. vorher als Variable deklariert zu haben strAnhang := Ordner + Info.Name; FillChar(FileAttach, SizeOf(FileAttach), 0); FileAttach.nPosition := Cardinal($FFFFFFFF); FileAttach.lpszPathName := PChar(strAnhang); nFileCount := 1; lpFiles := @FileAttach; end; except ShowMessage('Fehler' + #13#10 + exception(ExceptObject).Message); end; erg := FindNext(Info); end; FindClose(Info); ... // dann Mail versenden --> ist OK end; |
Re: mehrere Mailanhänge in einer Schleife
Du musst die Anhand der Anzahl der Dateien dynamisch Speicher holen
Delphi-Quellcode:
var
Attachments,Attachment : PMapiFileDesc; MailMessage: TMapiMessage; begin ... try with MailMessage do begin ... nFileCount := filenamelist.Count; if nFileCount > 0 then begin GetMem(Attachments,SizeOf(TMapiFileDesc) * filenamelist.Count); Attachment := Attachments; FOR iCount := 0 TO (filenamelist.Count - 1) do begin FileName := filenamelist[iCount]; Attachment.ulReserved := 0; Attachment.flFlags := 0; Attachment.nPosition := ULONG($FFFFFFFF); Attachment.lpszPathName := StrNew(PChar(FileName)); Attachment.lpszFileName := StrNew(PChar(ExtractFileName(FileName))); Attachment.lpFileType := NIL; inc(Attachment); END; lpFiles := Attachments; end else begin nFileCount := 0; lpFiles := nil; end; end; finally if Assigned(MailMessage.lpFiles) then FreeMem(MailMessage.lpFiles, MailMessage.nFileCount * sizeof(TMapiFileDesc)); end; end; |
Re: mehrere Mailanhänge in einer Schleife
Danke für den Tip. Hat funktioniert nachdem ich
Delphi-Quellcode:
auch mit reingenommen habe. Hatte ich am Anfang nur für eine lokale Variable gehalten und ingnoriert.
nFileCount := filenamelist.Count;
|
Re: mehrere Mailanhänge in einer Schleife
Hallo,
habe das hier mal probiert. Bekomme aber leider immer den Result 2 zurück. Ich weiß nicht woran das liegt. Wenn ich eine Mailversende ohne Attachments klappt alles nur wenn ich welche anhänge. Kann mir da jemand helfen ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 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