___ 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?
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.
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.