AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi mehrere Mailanhänge in einer Schleife
Thema durchsuchen
Ansicht
Themen-Optionen

mehrere Mailanhänge in einer Schleife

Ein Thema von Andreas Schilling · begonnen am 13. Feb 2007 · letzter Beitrag vom 2. Nov 2009
Antwort Antwort
Andreas Schilling

Registriert seit: 6. Sep 2006
106 Beiträge
 
Delphi 10.3 Rio
 
#1

mehrere Mailanhänge in einer Schleife

  Alt 13. Feb 2007, 09:10
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;
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: mehrere Mailanhänge in einer Schleife

  Alt 13. Feb 2007, 09:24
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;
Sven Harazim
--
  Mit Zitat antworten Zitat
Andreas Schilling

Registriert seit: 6. Sep 2006
106 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: mehrere Mailanhänge in einer Schleife

  Alt 13. Feb 2007, 11:32
Danke für den Tip. Hat funktioniert nachdem ich
nFileCount := filenamelist.Count; auch mit reingenommen habe. Hatte ich am Anfang nur für eine lokale Variable gehalten und ingnoriert.
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: mehrere Mailanhänge in einer Schleife

  Alt 2. Nov 2009, 12:10
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 ?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz