Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mehrere Dateien als Anhang verschicken. (https://www.delphipraxis.net/129895-mehrere-dateien-als-anhang-verschicken.html)

Sir K 27. Feb 2009 12:45


Mehrere Dateien als Anhang verschicken.
 
Hallo

ich verschicke via IdSMTP und IdMessage mails in einem Programm. Jetzt wollte ich noch nen Anhang hinzufügen und hab dafür dann folgenden Code genommen:
Delphi-Quellcode:
var
  iAttachment : TIdAttachmentFile ;
  iFile: String;
begin
...
iAttachment := TIdAttachmentFile.Create(IdMessage.MessageParts, iFile) ;
Nur jetzt möchte ich nicht nur eine Datei sondern mehrere die ich mir aus nem Array hole verschicken.

Kann mir jemand sagen wie ich das am besten anstelle?

LG

Sir K

nahpets 27. Feb 2009 12:54

Re: Mehrere Dateien als Anhang verschicken.
 
Hallo,

gugst Du bitte hier: http://www.delphipraxis.net/internal...=841166#841166

Sir K 27. Feb 2009 14:15

Re: Mehrere Dateien als Anhang verschicken.
 
Ich habs mal ausprobiert aber ich bekomme Zugriffsverletzungen gemeldet wenn ich die mail versenden möchte:
Delphi-Quellcode:
var
  iAttachment: TIdAttachmentFile;
  i: Integer;
begin

...
 
i:=0;
while not(MyAttatchments[i] = '') do
  begin
    iAttachment.Create(IdMessage1.MessageParts, MyAttatchments[i]);
    i:=i+1;
  end;
Lg
Sir K

Billa 27. Feb 2009 14:19

Re: Mehrere Dateien als Anhang verschicken.
 
sollte es nicht

while not(MyAttatchments[i] = '') do

heissen?

Im Übrigen halte ich das Konstrukt aus dem Beispiel von naphets für besser ...

Sir K 27. Feb 2009 14:36

Re: Mehrere Dateien als Anhang verschicken.
 
Zitat:

Zitat von Billa
sollte es nicht

while not(MyAttatchments[i] = '') do

heissen?

Im Übrigen halte ich das Konstrukt aus dem Beispiel von naphets für besser ...

...nee daran leigts nicht das is nur n tippfehler hier gewesen^^ bei mir im Code stehts.

LG

Sir K

Assertor 27. Feb 2009 15:28

Re: Mehrere Dateien als Anhang verschicken.
 
Hi,

Zitat:

Zitat von Sir K
Ich habs mal ausprobiert aber ich bekomme Zugriffsverletzungen gemeldet wenn ich die mail versenden möchte:
Delphi-Quellcode:
var
  iAttachment: TIdAttachmentFile;
  i: Integer;
begin

...
 
i:=0;
while not(MyAttatchments[i] = '') do
  begin
    iAttachment.Create(IdMessage1.MessageParts, MyAttatchments[i]);
    i:=i+1;
  end;

Kein wunder, Du greifst auf eine uninitialisiert Variable zu. Das ist genauso verkehrt wie z.B. MyForm.Create() statt MyForm := TMyForm.Create().

Also eher:
Delphi-Quellcode:
while not(MyAttatchments[i] = '') do
begin
  iAttachment := TIdAttachmentFile.Create(IdMessage1.MessageParts, MyAttatchments[i]);
  i:=i+1;
end;
Ich würde das iAttachment aber ganz weglassen und das so machen:
Delphi-Quellcode:
while not(MyAttatchments[i] = '') do
begin
  TIdAttachmentFile.Create(IdMessage1.MessageParts, MyAttatchments[i]);
  i:=i+1;
end;
Gruß Assertor

Sir K 28. Feb 2009 15:28

Re: Mehrere Dateien als Anhang verschicken.
 
Also mit diesem Code werden zwar die entsprechenden Attatchments angehängt allerdings kommen diese dann als *.dat an.
Ich hab zum Beispiel mal zwei *.jpeg angehängt und in der eMail tauchen diese dann als

ATT00017.dat und ATT00014.dat auf.

Weis jemand was da schief läuft?
Delphi-Quellcode:
i:=0;
while not(MyAttatchments[i] = '') do
begin
  TIdAttachmentFile.Create(IdMessage1.MessageParts, MyAttatchments[i]);
  i:=i+1;
end;
LG

Sir K

Assertor 28. Feb 2009 15:36

Re: Mehrere Dateien als Anhang verschicken.
 
Hi,

freut mich, daß es funktioniert.

Das mit den Anhängen ist bekannt seit ein paar Monaten, steht im QC bei CodeGear und in meinem Blog:
http://blog.digivendo.com/2008/10/fi...lost-in-d2009/

Entweder die Indy Version vollständig aktualisieren oder wie im Blog beschrieben nur die IdMessageClient.pas.

Gruß Assertor

Sir K 28. Feb 2009 16:04

Re: Mehrere Dateien als Anhang verschicken.
 
Also ich wollte jetzt nur den Code ändern weil ich jetzt nicht die ganze INDY aktualiesern will.
Jetzt hab ich nur das Problem, dass ich die IdMessageClients.pas nirgendwo finden kann.

bei mir existiert das Verzeichnis

C:\Program Files\CodeGear\RAD Studio\6.0\source\Indy\Indy10\Protocols\ nur bis zum
C:\Program Files\CodeGear\RAD Studio\6.0\source\

Gibts ne Möglichkeit im RAD Studio zu schaun wo die liegen?

LG

Sir K

Assertor 28. Feb 2009 18:11

Re: Mehrere Dateien als Anhang verschicken.
 
Hi Sir K,

Zitat:

Zitat von Sir K
IdMessageClients.pas nirgendwo finden kann.

Die Verzeichnisse stimmen, aber die Datei heißt IdMessageClient.pas. Falls Du in den o.g. Verzeichnissen gar keinen Indy Source hast, hast Du entweder eine Trial Version oder aus irgendeinem anderen Grund fehlen bei Dir die VCL/RTL Quellcodes.

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.
Seite 1 von 2  1 2      

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