Versuchen Sie, eine Verbindung mit dem SMTP-Port herzustellen, und stellen Sie sicher, dass Sie eine Zeile zurück erhalten, die mit "220" beginnt und die Buchstaben "SMTP" enthält. Ein typisches Beispiel Antwort wäre:
220 prod.monadic.cynic.net ESMTP Postfix (2.5.5)
Dann höflich sein und „QUIT
\ r \ n“ aufzuhängen senden.
Sie können weitere Tests durchführen, wenn Sie möchten, z. B. testen, ob der Benutzer wahrscheinlich Nachrichten übermitteln kann. Dazu senden Sie einen HELO-Befehl mit Ihrem Hostnamen (oder einer beliebigen Zeichenfolge), einem MAIL FROM
-Befehl mit der E-Mail-Adresse des Benutzers und einer RCPT TO:<[email protected]>
. Die meisten Server an diesem Punkt werden Ihnen sagen, ob das Relaying nicht erlaubt ist. (Ich gehe davon aus, dass Sie dies von dem Computer aus tun, von dem Sie später E-Mails senden werden.) So lange Sie QUIT
danach, anstatt einen DATA
Befehl und die Nachricht Daten, wird nichts gesendet werden.
Hier ist eine Beispielsitzung, die von der Shell aus mit dem Befehl "netcat" ausgeführt wird und anzeigt, dass mein Server existiert, aber keine E-Mails für Personen von zufälligen IP-Adressen weiterleitet.
$ nc prod.monadic.cynic.net. 25
220 prod.monadic.cynic.net ESMTP Postfix (2.5.5)
HELO cynic.net
250 prod.monadic.cynic.net
MAIL FROM:<[email protected]>
250 2.1.0 Ok
RCPT TO:<[email protected]>
554 5.7.1 <[email protected]>: Relay access denied
QUIT
221 2.0.0 Bye
$
Wie Curt bereits gesagt, versuchen Sie eine Verbindung und prüfen Sie, ob Sie einen Port öffnen können. Dann schaue nach, ob du eine Antwort bekommen hast, aber falls konfiguriert, wird dir ein Server anfangs nichts senden. Beginnen Sie also mit einem 'HELO' oder 'EHLO' Befehl und überprüfen Sie die Antwort. Weitere Befehle, die Sie für die Überprüfung versuchen könnten, sind in RFC 821, 2821 und 5321 aufgeführt. – Oliver
Ein Server sendet Ihnen tatsächlich in der Tat eine 220-Linie, sobald Sie eine Verbindung herstellen. Ich habe ein Beispiel oben hinzugefügt, um dies klarer zu machen. –
Hi Curt das ist wirklich, aber ich kann den ersten Teil richtig folgen, aber ich bin nicht in der Lage, die synatx RCPT zu verstehen: <[email protected]> können Sie etwas Code in C# dafür geben. –