Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Setzen von Timeout bei Mailversand - immer Fehler? (https://www.delphipraxis.net/143833-setzen-von-timeout-bei-mailversand-immer-fehler.html)

andreasm82 24. Nov 2009 12:16


Setzen von Timeout bei Mailversand - immer Fehler?
 
Delphi-Quellcode:
Try
      SMTPClient := TIdSMTP.Create;
      SMTPClient.Username := MailData.MailUsername;
      SMTPClient.Password := MailData.MailPassword;
      SMTPClient.ConnectTimeout := 5000;
      SMTPClient.Connect(MailData.MailProvider);
      SMTPClient.Send(SendMessage);
      SMTPClient.Destroy;
      DataLog('Mail send to ' + Buffer + '!');
    except
      DataLog('SendMail not possible, Connection failed!');
    end;

Bei dem obigen Code erhalte ich komischerweise jedes Mal die Meldung 'SendMail not possible, Connection failed!' in meinem Logfenster.
Aber: Die Mail wurde versandt. Das verstehe ich nicht...


Als ich früher das ConnectTimeout niedriger gesetzt hatte, so kam die Meldung 'SendMail not possible, Connection failed!' nicht.
Ich möchte das Timeout aber aus Sicherheitsgründen extra hoch gesetzt haben.


Woran liegt dies?

Luckie 24. Nov 2009 12:24

Re: Setzen von Timeout bei Mailversand - immer Fehler?
 
Lass dir mal den echten Exception-Text ausgeben, dann siehst du auch warum die Exception aufgetreten ist. :?

andreasm82 24. Nov 2009 12:26

Re: Setzen von Timeout bei Mailversand - immer Fehler?
 
Ohja sorry. An dieser Stelle hatte ich das noch vergessen. ;)

andreasm82 24. Nov 2009 12:52

Re: Setzen von Timeout bei Mailversand - immer Fehler?
 
Delphi-Quellcode:
except
    on E:Exception do
      begin
        DataLog('Error: ' + E.ClassName+':'+E.Message);
        DataLog('SendMail not possible, Connection failed!');
      end;
    end;

Ist das die beste Lösung zum Abfangen ? Oder gibt es noch bessere Möglichkeiten mit mehr Infos?


Als Meldung bekam ich nun : EIdSMTPReplyError:

Luckie 24. Nov 2009 13:04

Re: Setzen von Timeout bei Mailversand - immer Fehler?
 
Das ist die Klasse. Und wie lautet der Text? Ist der Server denn überhaupt erreichbar? Stimmen die Logindaten?

andreasm82 24. Nov 2009 14:33

Re: Setzen von Timeout bei Mailversand - immer Fehler?
 
Delphi-Quellcode:
Und wie lautet der Text?
Sonst stand nichts dabei... das war der komplette Text.

Delphi-Quellcode:
 Ist der Server denn überhaupt erreichbar?
Ja, das wunderte mich ja. Die Mails werden immer versandt und kommen an.

Logindaten stimmen daher auch.

Luckie 24. Nov 2009 14:53

Re: Setzen von Timeout bei Mailversand - immer Fehler?
 
Eventuell antwortet der Server nach dem Versandt mit irgendwas, was die Klasse nicht versteht und als EIdSMTPReplyError interpretiert. Wenn der Mailversandt nachweislich funktioniert, würde ich die Exception einfach ignorieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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