Delphi + Indy: Verbindung wurde ordnungsgemäß geschlossen

8

Verwenden von D7 + Indy 10 neuesten Build.

Mein Code verwendet TIdSMTP zum Senden von E-Mails. Ich bekomme bei einigen Endbenutzern "Verbindung ordnungsgemäß geschlossen" und die E-Mail wird nie gesendet.

Der Code ist wie folgt:

%Vor%

Irgendwelche Ratschläge?

    
Atlas 06.07.2009, 08:13
quelle

3 Antworten

21
___ qstnhdr ___ Delphi + Indy: Verbindung wurde ordnungsgemäß geschlossen ___ tag123delphi ___ Delphi ist eine Sprache für die schnelle Entwicklung von nativen Windows-, macOS-, Linux-, iOS- und Android-Anwendungen mithilfe von Object Pascal. Der Name bezieht sich sowohl auf die Delphi-Sprache als auch auf deren Bibliotheken, Compiler und IDE, mit denen Delphi-Projekte bearbeitet und debuggt werden können. ___ qstntxt ___

Verwenden von D7 + Indy 10 neuesten Build.

Mein Code verwendet TIdSMTP zum Senden von E-Mails. Ich bekomme bei einigen Endbenutzern "Verbindung ordnungsgemäß geschlossen" und die E-Mail wird nie gesendet.

Der Code ist wie folgt:

%Vor%

Irgendwelche Ratschläge?

    
___ answer085945 ___

Lesen Sie alles auf Ссылка

  

EIdConnClosedGravefully ist ein   Ausnahme signalisieren, dass die   Verbindung wurde von der geschlossen   andere Seite absichtlich. Das ist nicht   das gleiche wie eine unterbrochene Verbindung, die   würde einen Verbindungs-Reset-Fehler verursachen.   Wenn die andere Seite geschlossen hat   Verbindung und der Sockel wird gelesen oder   geschrieben in, EIdConnClosedGrancefully   wird von Indy erzogen werden. Das ist   ähnlich dem Versuch zu lesen oder zu schreiben   zu einer Datei, die ohne geschlossen wurde   dein Wissen.

     

In einigen Fällen ist dies eine echte Ausnahme   und dein Code muss damit umgehen. Im   andere Fälle (typischerweise Server) dies   ist ein normaler Teil der Funktionsweise von   Das Protokoll und Indy behandelt dies   Ausnahme für dich. Obwohl Indy   fängt es ab, wenn es in der IDE läuft   Der Debugger wird zuerst ausgelöst.   Sie können einfach F9 drücken, um fortzufahren   und Indy wird die Ausnahme behandeln,   aber das ständige Anhalten während   Debugging kann ziemlich nervig sein. Im   die Fälle, in denen Indy die   Ausnahme, Ihre Benutzer werden nie sehen   eine Ausnahme in Ihrem Programm, es sei denn es   wird von der IDE ausgeführt.

    
___ answer21395528 ___

Nach meiner Erfahrung lehnt es im Falle eines AT & amp; T-Servers eine E-Mail-Adresse ab, die nicht %code% Adresse in %code% ist. Weitere Informationen können ermittelt werden, indem der Fehler unter Verwendung von %code% für diese Benutzer protokolliert wird. Andernfalls ist der Fehlerbericht eher vage - wenn die Trennung (Verbindung ordnungsgemäß geschlossen) unmittelbar nach %code% erfolgt, kann dies auf eine Serverrichtlinie hinweisen eine E-Mail mit der Domain zurückweisen, die sie nicht hostet, wie auch von Toni erklärt.

Andernfalls bedeutet der Fehler "Verbindung geschlossen", dass versucht wird, den Socket zu lesen / zu schreiben, der vom Peer absichtlich geschlossen wurde - in Ihrem Fall ist Peer der SMTP-Server, den Sie verwenden verbunden mit. Es ist anders als der Fehler "Verbindung zurückgesetzt", der eine unterbrochene Verbindung anzeigt. In beiden Fällen ist die Verbindung nicht mehr vorhanden und Sie können nicht mehr lesen / schreiben.

    
___ tag123indy ___ Indy (kurz für Internet Direct) ist eine Open-Source-Bibliothek für Delphi, C ++ Builder und FreePascal, die Client- und Serverimplementierungen von TCP-, UDP- und RAW-Sockets sowie über 100 Protokolle höherer Ebenen unterstützt. Einige der unterstützten Protokolle umfassen: SMTP, POP3, IMAP, NNTP, HTTP. ___ answer17087284 ___

In meinem Fall wurde der Fehler verursacht, weil ich eine Absender-E-Mail-Adresse aus einer anderen Domäne verwendet habe, als die, die vom SMTP-Server gehostet wurde, weshalb der SMTP-Server die Verbindung ablehnte.

    
___
Lars Truijens 06.07.2009 08:17
quelle
2

In meinem Fall wurde der Fehler verursacht, weil ich eine Absender-E-Mail-Adresse aus einer anderen Domäne verwendet habe, als die, die vom SMTP-Server gehostet wurde, weshalb der SMTP-Server die Verbindung ablehnte.

    
Toni 13.06.2013 12:38
quelle
1

Nach meiner Erfahrung lehnt es im Falle eines AT & amp; T-Servers eine E-Mail-Adresse ab, die nicht @att.net Adresse in MAIL FROM ist. Weitere Informationen können ermittelt werden, indem der Fehler unter Verwendung von TIdLogEvent für diese Benutzer protokolliert wird. Andernfalls ist der Fehlerbericht eher vage - wenn die Trennung (Verbindung ordnungsgemäß geschlossen) unmittelbar nach MAIL FROM erfolgt, kann dies auf eine Serverrichtlinie hinweisen eine E-Mail mit der Domain zurückweisen, die sie nicht hostet, wie auch von Toni erklärt.

Andernfalls bedeutet der Fehler "Verbindung geschlossen", dass versucht wird, den Socket zu lesen / zu schreiben, der vom Peer absichtlich geschlossen wurde - in Ihrem Fall ist Peer der SMTP-Server, den Sie verwenden verbunden mit. Es ist anders als der Fehler "Verbindung zurückgesetzt", der eine unterbrochene Verbindung anzeigt. In beiden Fällen ist die Verbindung nicht mehr vorhanden und Sie können nicht mehr lesen / schreiben.

    
Coder12345 28.01.2014 02:06
quelle

Tags und Links