2009-04-16 14 views
2

Als Teil des Konfigurationsprozesses meiner App habe ich eine Plausibilitätsprüfung, die alle vom Benutzer bereitgestellten Daten überprüft. Dies umfasst E-Mail-Servereinstellungen, die die App zum Senden von E-Mails verwendet.Wie kann ich meine E-Mail-Einstellungen testen, ohne eine Nachricht zu senden?

Ich möchte eine einfache Vernunft über diese Einstellungen überprüfen, ohne tatsächlich eine E-Mail zu senden. Es wäre großartig, wenn dies alle gängigen Varianten von SMTP-Setups unterstützen würde, einschließlich solcher mit Authentifizierung/ssl/etc.

Es muss nicht erschöpfend sein, aber je mehr Abdeckung, desto besser.

Momentan überprüfe ich nur, dass ich eine Verbindung zu dem gegebenen Server am gegebenen Port öffnen kann. Etwas ein bisschen tiefer wäre schön.

Hinweis: Ich bin nicht versuchen, E-Mail-Adressen zu validieren - das ist nicht relevant für diese Frage.

Antwort

4

Sie öffnen einfach eine rohe Verbindung zum Server & Port, den der Benutzer liefert und eine

HELO Server.Domain.Com 
Mail From: [email protected] 

tun, um zu sehen, ob Sie eine gültige HELO Antwort & Sender OK Antwort (wenn SMTP-Authentifizierung aktiviert ist) .

Das gleiche wie Sie tun würden, wenn Sie Telnet direkt auf den Server. danke für die Tipps:

http://www.petri.co.il/test_smtp_service.htm

Dies könnte auch

http://qmail.jms1.net/test-auth.shtml

+0

Wenn ich einen sicheren SMTP-Server verwende, wie weit komme ich hier hin? Wo würde ich ein Passwort eingeben oder eine SSL/TLS-Verbindung starten? –

+1

nicht sicher t.b.h. Habe das nie testen müssen. Sie könnten diesen Link versuchen. es gibt einige details auf openssl/encoding/und mit dem Auth-Befehl http://qmail.jms1.net/test-auth.shtml –

+0

danke Eoin, das extra Link ist sehr nützlich –

1

Ich bin sicher, jemand heller und qualifizierter wird mit einer besseren Antwort piped. Aber auf den ersten Blick würde ich sagen, dass Sie nicht die Fähigkeit zu erfolgreich E-Mail senden können, ohne tatsächlich eine E-Mail zu senden.

Wenn Sie jedoch den Prozess automatisieren möchten, können Sie eine '[email protected]' (oder Ihre lokale Domain) Adresse haben.

Dann können Sie eine Watchdog-Anwendung erstellen, die diese E-Mail-Adresse überwacht, oder nur eine einfache App, die programmatisch mit dieser E-Mail-Adresse verbunden ist und prüft, ob eine E-Mail innerhalb von X Minuten empfangen wurde. Auf diese Weise können Sie 100% sicher sein, dass die E-Mails versendet werden können. Dieser Link zeigt how to programmatically check gmail addresses.

Ein wichtiger Hinweis: Wenn Ihre Anwendung externe E-Mails versendet, dann ist es am besten, wenn Ihre E-Mail-Adresse extern ist, weil Ihr Server möglicherweise keine externen E-Mails senden kann, aber interne E-Mails ganz gut, und in diesem Fall würde Ihre Plausibilitätsprüfung ein falsches positives Ergebnis liefern.

+0

@devinb nützlich sein. Dies ist nur für den internen Gebrauch und für eine schnelle Plausibilitätsprüfung wird nichts gesendet. Dafür gibt es später einen Schritt. Vielen Dank! –

Verwandte Themen