Einzelnen Beitrag anzeigen

BlueStarHH
Online

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#1

Indy IdSMTP: Kein Mail-Versand mehr nach Fehlermeldung möglich

  Alt 11. Feb 2014, 14:12
Hallo,

ich nutzen die Indy TIdSMTP Komponente, um damit Mails zu versenden. Einen Auszug aus meinem Code findet Ihr unten. Es klappt so.

Wenn man falsche Verbindungsdaten (z.B. falsches Passwort oder einen ungültigen Servernamen) angegeben hat, erscheint eine Fehlermeldung. Das ist auch richtig so.

Wenn man danach nun allerdings richtige Daten angibt, und dann nochmal den Versand probiert, erscheint nach 60 Sekunden (=Timeout?) die Fehlermeldung "Connection closed gracefully" und die Mail wird nicht versendet. Auch weitere Versandversuche klappen nicht. Ich muss erst das Programm beenden und neu starten. Dann klappt der Versand.

Also in kurz: Tritt 1x ein Fehler auf, wird der Versand dauerhaft gestört. Warum? Wie setze ich die Indy-Komponenten zurück, so dass ein Mailversand nach einem Fehler möglich ist?

Delphi-Quellcode:
  //Verbindung abbauen, wenn verbunden
  if IdSMTP.Connected then
  begin
    try
      IdSMTP.Disconnect;
    except
    end;
  end;

  //Mail-Einstellungen
  IdMessage.Recipients.Clear;
  IdMessage.Recipients.Add.Address := 'xxxxxxxx';
  IdMessage.Body.Text := 'Testmail';

  //Verbindungs-Einstellungen setzen
  IdSMTP.Host := 'xxxxx';
  IdSMTP.Port := 'xxxxx';
  ...

  
  //Mail versenden
  IdSMTP.Connect;
  try
    IdSMTP.Send(IdMessage);
    IdSMTP.Disconnect();
  except
    on e: exception do
    begin
      MessageDlg(e.Message, mtError, [mbOK], 0);
      IdSMTP.Disconnect();
    end;
  end;
  Mit Zitat antworten Zitat