Email Adressen Validitätsüberprüfung

  • #1
D

DasWeisseKaninchen

Guest
Hallo Gemeinde,

ich habe folgende Herausforderung: eine in eine Datenbank eingegeben Email Adresse soll in Echtzeit auf Gültigkeit überprüft werden. Das Verfahren ist bereits aus dem Sicherheits und Gaming Bereich bekannt, man benutzt derlei um z.B. Registrierungen abzuschliessen. Nun habe ich mich umgesehen und diverse Verfahren für die Überprüfung der Syntax gefunden. Damit ist jedoch nicht gewährleistet, dass die Adresse existiert.

Was macht man in so einem Fall? Gibt es evtl. ein Tool dass diese Aufgabe erledigen kann? Idealerweise sollte es Kommandozeile basiert sein, so ist eine Einbindung in viele Instanzen möglich. Ich scheue mich auch nicht davor das Pferd neu zu erfinden, jedoch fehlt mir das Fachwissen, keine Ahnung wodrauf ein solcher Algorithmus aufbauen könnte. Idealerweise berücksichtigt man dabei sowohl IMAP als auch POP Adressen, wobei man auf IMAP notfalls aufgrund geringer Verbreitung verzichten könnte.

Die Idee eine Test-Email an die zu überprüfende Email Adresse zu senden, und ggf. ein Mail Failure Device abzuwarten, möchte ich gleich verwerfen: zum einen bekommen arme ehrliche Benutzer die Spam-Testmail, zum anderen ist es sicherlich nicht die eleganteste und vor allem keine performante Lösung.

Ich warte auf Antworten Oh Allwissende ;)

Das Weisse Kaninchen
 
  • #2
Da hast du dir etwas vorgenommen...
Btw spielt es überhaupt keine Rolle, ob POP3 oder IMAP zum Einsatz kommt - die einzige Möglichkeit für dich, das Bestehen einer e-Mail Adresse zu überprüfen, ist das SMTP-Protokoll.

Testen kannst du z.B. via telnet auf den Port 25 des Mailservers des E-Mail-Providers. Mit ein paar Konsolen-Befehlen lässt sich so sehr schnell herausfinden, ob eine e-Mail-Adresse überhaupt existiert.

Cheers,
Joshua
 
  • #3
Danke Joshua,

magst du mir nicht ein Beispiel geben? ::)

SMTP ist dieses veraltete Protokoll zum versenden der Emails, ich schliesse also der Logik nach: ich müsste das nach dem @-Zeichen folgende Domäne auf dem 25 Port anpingen? um ggf. eine Rückmeldung über die Existenz zu bekommen. Was macht Telnet? Ich glaube diesen Dienst gibt es auf den Windows Server Editionen. Mit der Konsole ist vermutlich die Konsole von Telnet gemeint.

Interessant wäre auch zu wissen ob es einen speziellen Befehl via SMTP dafür gibt, oder man das Ergebnis mittels eines Tricks erreicht.

Das Weisse Kaninchen
 
  • #4
War suchfaul, schäme mich :)

Ist der Befehl VRFY, müsste so klappen. Das Problem ist allerdings dass dieser Befehl nur innerhalb der Telnet Konsole verfügbar ist. Die Aufgabenstellung wäre eine unabhängige Instanz im LAN zu schaffen, die in der Lage sein muss solche VRFY Anfragen zu bearbeiten, das ist nur mit einer offenen Sitzung über Telnet nicht gewährleistet. Kann man einer Telnet Sitzung Anfragen von draussen stellen?

Das Weisse Kaninchen
 
  • #5
Noch ein Nachtrag:

ich korrigiere mich: den Befehl VRFY kann man weitgehend vergessen. Die SMTP Telnet Server der Mail Provider unterstützen es nicht und sind dazu auch noch nicht Syntaxkonform, was auf einem geht funktioniert auf dem anderen überhaupt nicht. Die technischen Mitarbeiter der Provider (ich habe bei 4 Grossen nachgefragt: t-online,gmx, freenet, web.de) sind weder in der Lage die richtige Syntax zur Anmeldung zu nennen, noch eine Ansprechsperson im eigenen Unternehmen die diese Fragen beantworten könnte. Ein einziger (T-Online) hat zumindestens den Sachverhalt verstanden um den es geht, der Rest hmmmm.... Ich wünsche mir die würden mehr Inder einstellen :)

Zum grossen Teil wird auch eine Authenfizierung verlangt, ich vermute logischerweise das Problem lässt sich umgehen in dem man beim Provider ein entsprechendes Konto erstellt. Logisch ist es nach meiner Meinung nicht: aus dem Sachverhalt ergibt sich ja dass ich nichts über SMTP Server senden möchte, für eine Validierung wäre theoretisch eine Benutzerkennung nicht erforderlich.
Das Problem eines geeigneten Tricks steht also nach wie vor offen.


Dazu kommt das man aus der Ziel Email nicht den SMTP Server auslesen kann, sprich [email protected] hat logischerweise smtp.t-online.net. Da gibt es ja Listen die enstprechende SMTP Verweise beinhalten. Was macht man aber wenn Manfred aus Honolulu kommt und die Adresse [email protected] hat? Man kann probieren die Namen der SMTP Server zu raten, denn diese gleichen sich ja meistens, im Fall Manfred wäre die Alternative smtp.honolulu.net denkbar. Eine 100% Quote gibt es dann natürlich nicht, aber dem Benutzer kann zumindestens mitgeteilt werden wenn die Adresse nicht überprüft werden kann, auf die Ausnahmen muss man also verzichten, was ja noch vertretbar wäre.

Insgesamt lässt sich sagen, dass der Sachverhalt mit der Telnet Konsole (ist bei jedem 2000er System als Client dabei) sehr problematisch ist.
Zum einen wissen wir ja erfahrungsgemäss dass es bereits ein geeignetes Verfahren gibt, da viele schon mehrmals sich von der Funkionalität live überzeugen konnten. Andererseits bin ich jedoch skeptisch ob man da als Umsetzung die Telnet SMTP Methode gewählt hat.

Die grössten Hindernisse wären:

a)Dinge wie gültige SMTP Server Listen oder Telnet Syntax der Provider müssen ständig per Hand gepflegt werden,
anderenfalls geht die Validierungsquote ständig nach unten

b)da die SMTP Server verschiedener Provider verschieden angesprochen werden wollen, muss jede Verbindungsroutine (könnte eine *.bat sein) auf den Provider zugeschnitten werden. Wie oben bereits beschrieben habe, scheint es ein Ding der Unmöglichkeit zu sein die Informationen die dafür erforderlich sind zu bekommen

Kennt nicht jmd ein alternatives Verfahren? Bin für jeden Hinweis dankbar, ich hoffe der nächste Post ist ausnahmsweise nicht von mir :)

Das Weisse Kaninchen
 
Thema:

Email Adressen Validitätsüberprüfung

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben