Autor Beitrag
ruewue
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mi 17.11.10 10:45 
Hallo, habe mal wieder ein kleines Problem.

Ich versende aus einem Programm heraus eine Mail. Dies auch einwandfrei. Nun hänge ich ab und zu eine Datei an. geht auch super. Da nun aber immer wieder mehr als eine Datei angehängt werden muss, habe ich ein Problem. Die Mail wird nicht verschickt, wenn es mehr als 1 Anahng ist.

Hier mein Code dazu:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
Begin  
  idSMTP.Host     := gsSMTPServer;
  idSMTP.Username := gsMailUSR;  
  idSMTP.Password := gsMailPWD;
  idSMTP.Port     := 25;  

  idMessage.From.text   := 'Mail-Server';  
  idMessage.Sender.text := fMail.SendText;  
 
  idMessage.Recipients.EMailAddresses := fMail.Empf;  
  idMessage.CCList.EMailAddresses     := fMail.CC;  
  idMessage.Subject                    := fMail.Subject;  

  Body      := TStringList.Create;
  Body.Text  := fMail.BodyText;
  idMessage.Body.Clear;  
  idMessage.Body := Body; 

  
  if Trim(fMail.FileName) <> '' then begin
    if FindFirst(fMail.Path + fMail.FileName, faAnyFile, DirInfo) = 0 then begin
      repeat
        idMessage.IsEncoded    := true;
        Anhang                := TIdAttachmentFile.Create(idMessage.MessageParts);
        Anhang.StoredPathName  := fMail.Path + DirInfo.Name;
        Anhang.FileName        := DirInfo.Name;
        Anhang.OpenLoadStream;
        Anhang.CloseLoadStream;
      until FindNext(DirInfo) <> 0;
    end;
  end;
  
  try
    idSMTP.Connect;  
    idSMTP.Send(idMessage);  
    idSMTP.Disconnect;  
  except 
    on E : Exception do begin  
      if idSMTP.connected then begin
        try 
          idSMTP.disconnect; 
        except 
        end;
      end;
      SendInfo('Fehler beim Mail Versand : ' + E.Message);
    end;  
  end;  
end;


Irgend wie sehe ich den Fehler nicht. Es läuft ja mit einen Anhang auch super. Der Fehler tritt bei idSMTP.Send(idMessage) auf.

Danke
Rüdiger

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 18.11.2010 um 07:15
buster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 66
Erhaltene Danke: 7

WIN 7
Delphi 2010 Prof
BeitragVerfasst: Mi 17.11.10 11:32 
versuch mal
ausblenden Delphi-Quelltext
1:
TIdAttachment.Create(idMessage.MessageParts, FileName[i]);					
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Mi 17.11.10 12:40 
Alternativ könntest du auch einbauen, dass wenn mehrere Dateien angehängt werden, sie in eine Zip gepackt werden und dann verschickt werden.
Wenn der Aufwand nicht zu groß sein sollte.

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
ruewue Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mi 17.11.10 14:07 
@buster : Habe ich schon als erstes Versucht. Nach ein wenig googl fand ich dann die aktuelle version und damit sollte es eigentlich gehen.

@Dude566 : Es wird bei uns in der Fachabteilung eine Mail mit einzelnen TXT Dateien verlangt.

Aber danke für die Hilfe.
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mi 17.11.10 14:11 
ausblenden Delphi-Quelltext
1:
Anhang:= TIdAttachmentFile.Create(idMessage.MessageParts);					


Das mal vor die Repeat-Schleife setzen? Schaut so aus, als ob sonst bei jedem Durchgang das neu gesetzt wird? (oder wird damit nur ein neuer zusätzlicher Anhang erzeugt?)

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
ruewue Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mi 17.11.10 14:19 
Damit soll angeblich immer ein neuer Anhang erzeugt werden. Habe es aber versucht davor zu setzen, keine Änderung.
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Mi 17.11.10 14:29 
Und was für ein Fehler wird angezeigt?

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
ruewue Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 31



BeitragVerfasst: Mi 17.11.10 15:40 
@Platzward : keiner. Die Exception EIdSMTPReplyError gibt keine Message zurück. Ist leer.

Ich habe jetzt mal getestet, ob alle Dateien auch mit CREAT erzeugt werden. JA. in einer Schleife konnte ich alle auslesen. Es kann nur keine MAil erzeugt werden, sobald mehr als eine enthalten ist.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Hallo zusammen und danke für die Hilfe.

Ich habe das Problem gelöst. Unter den Dateien war eine zu große. Bei mehr als 4 MB wird von unserem SMTP Server nichts übertragen. Dumm nur das Keine Message ausgegeben wurde, sondern nur ein Abbruch.

Aber der Test mit mehreren kleinen Dateien und gesamt nicht größer als 4 MB hat gepklappt.