phpbar.de logo

Mailinglisten-Archive

[php] mailcheck (bigmail)

[php] mailcheck (bigmail)

Tobias Ratschiller tobias_(at)_dnet.it
Tue, 16 Nov 1999 23:08:11 +0100


> follgendes php3 script sollte eigentlcih der perfekte e-mail check sein,
> aber irgendwie gibt er nicht aus, kann mal jemand schauen was fehlt? Mir
> fehlt noch ein groseß Stueck Verstaendnis um das zu Kapieren...:

Das funktioniert leider nicht genügend.

Auf den ersten Blick scheint das der richtige Weg zu sein, im richtigen
Leben versagt er leider zu oft. Es basiert darauf, daß SMTP zurückgibt, ob
ein lokaler User existiert oder nicht. Kriegt man bei dem Versuch, dem
SMTP-Server zu sagen, er solle eine Mail an User Joe losschicken, eine
550-Rückmeldung, soll das bedeuten, daß es den User lokal auf dem System
nicht gibt. Perfekt, in der Theorie. Leider geben viele Server generell ein
250 (User existiert) zurück. Ich hab das mal bei meinem SMTP-Server
probiert, und siehe da, er gibt 250 für jeden User:
bash-2.01$ telnet smtp.dnet.it 25
Trying 194.242.192.2... Connected to ns.dnet.it.
Escape character is '^]'.
220 ns.dnet.it ESMTP Sendmail 8.9.3/8.9.3; Tue, 26 Oct 1999 14:02:43 +0200
(MET)

HELO www.profi.it
250 ns.dnet.it Hello www.profi.it [194.242.192.194], pleased  to meet you
MAIL FROM: tobias_(at)_dnet.it
250 tobias_(at)_dnet.it... Sender ok
RCPT TO: this.user.doesnt.exist.for.sure
250 this.user.doesnt.exist.for.sure...  Recipient ok
QUIT
221 ns.dnet.it closing connection Connection closed by foreign host.

Dasselbe passiert z.B. auch bei AOL.

Eine bessere Idee wäre es, zu checken, ob der MX (Mail eXchange)-Host
existiert. Das kann die Validierung allerdings ziemlich verlangsamen, wenn
man auf einen langsamen Remote Host stößt oder der NS-Lookup nicht im
lokalen DNS-Server gecached ist.

Die einzige 100% Validierung, ist eine Mail an den User zu schicken und eine
Bestätigung zu verlangen. Diese Bestätigung kann dann natürlich automatisch,
z.B. mit PHP, ausgewertet werden.

Mit freundlichen Grüßen,
  Tobias Ratschiller



php::bar PHP Wiki   -   Listenarchive