Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Emailadresse auf tatsächliche Existenz prüfen?? (https://www.delphipraxis.net/5022-emailadresse-auf-tatsaechliche-existenz-pruefen.html)

yellomb 20. Mai 2003 21:46


Emailadresse auf tatsächliche Existenz prüfen??
 
Hallo Leute,
hat jemand eine Idee, wie man am geschicktesten eine Emailadresse auf auf die tatsächliche Existenz überprüfen kann??

danielA 20. Mai 2003 22:06

Hallo yellomb,

gar nicht.

Es gibt zwei möglichkeiten EMails zu versenden

1. über einen authentifizierten Server
Bevor man eine Mail schicken kann muß man sich beim Server mit Passwort authentifizieren. Solche EMailadressen existieren also immer.

2. über Standard SMTP
Standard SMTP interessiert es nicht, von wem die Mail ist es kennt nur seine Domain (also alles nach dem @). Alles was vor dem @ steht wird ihm vom Mailclient übergeben und dann so übernommen egal ob es existiert oder nicht.

Auch wenn momentan die meißten Provider auf eine Authentifizierung des SMTP umstellen sehe ich auch auf lange Frist keine Möglichkeit auf eine reale Existenz einer Absenderadresse zu prüfen, da es immer wieder schwarze Schafe geben wird, die versenden nach dem zweiten Verfahren zulassen. Solltest du jedoch auf Adressen prüfen wollen, die z.B. in einem Webformular angegeben wurden, kannst du nur eins machen. Sende eine Mail an diese Adresse. Kommt sie mit einer Fehlermeldung zurück, gibt es sie nicht. Kommt sie nicht zurück, ist sie entweder existent oder der Admin/root des Servers mit dieser Domain hat sie bekommen.

Grüße danielA

yellomb 20. Mai 2003 22:20

Es muß doch irgend eine Möglichkeit geben, einen Rückgabeparameter vom Server zu erhalten, wie z.B. beim HTTP-Server (server.responsecode)
200 OK u.s.w
Es geht darum eine Kundendatenbank zu pflegen und nicht mehr existente Emailadressen auszufiltern.

danielA 20. Mai 2003 23:52

Hallo ich bins nochmal.

Ich habe mir ebend unter Linux mal eine Mail mit telnet geschrieben (Socketebene) schau es dir am besten mal an.
  • SERVER:~# telnet 127.0.0.1 25
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    220 server.local ESMTP Postfix
    HELO TEST.TEST // ich
    250 SERVER.local
    VRFY BLA // ich
    252 BLA
    MAIL FROM: BLA@BLA.BLA // ich
    250 Ok
    RCPT TO:BLA@localhost // ich
    250 Ok
    DATA // ich
    354 End data with <CR><LF>.<CR><LF>
    Hallo das ist eine Mail // ich
    . // ich
    250 Ok: queued as 724B11B073
    QUIT // ich
    221 Bye

Wie du siehst, gibt es weder den Absenderserver (HELO TEST.TEST), den Absender (MAIL FROM: BLA@BLA.BLA), noch den Empfänger (RCPT TO:BLA@localhost).
Die einzige Chance die du hast, ist der Befehl VRFY und EXPN welche überpüfen sollen, ob der Empfänger existiert. Diese Befehle müssen aber, wie oben bei mir, nicht implementiert sein. Am besten du schaust dir dazu mal die RFC 821 (http://www.ietf.org/rfc/rfc0821.txt)

Gruß danielA

sakura 21. Mai 2003 08:38

Wie DanielA bereits geschrieben hat, gibt es das SMTP command VRFY, allerdings wird diese Methode von den meisten SMTP Servern entweder nicht unterstützt, da optional, oder ist blockiert. Durch diese Möglichkeit wird leider auch Spam erleichtert, da einfach die Existenz tausender Emailadressen in kürzester Zeit auf einem Rechner getestet werden kann.

Beste Möglichkeit ist wohl, einfach eine Email zu versenden und zu warten, ob es durchgeht oder eine Fehlermeldung innerhalb von 48h kommt.

@danielA: Die zweite Möglichkeit wird von jedem SMTP Server zugelassen, wenn die Zieldomain auf dem SMTP Server registriert ist ;-) Muss ja auch, sonst würde das ganze System nicht gehen.

...:cat:...

Salomon 21. Mai 2003 09:13

Also prüfen ob eine Mail-Adresse existiert kann man schon. Dazu muss man "nur" den Zielrechner abfragen ob ein MX Eintrag für die jeweilige E-Mail Adresse existiert.
Unter PHP gibt es dazu folgende funktion "checkdnsrr($host, "MX")" Das ganze läst sich sicher auch in Delphi realisieren.

sakura 21. Mai 2003 09:22

Zitat:

Zitat von Salomon
Also prüfen ob eine Mail-Adresse existiert kann man schon. Dazu muss man "nur" den Zielrechner abfragen ob ein MX Eintrag für die jeweilige E-Mail Adresse existiert.
Unter PHP gibt es dazu folgende funktion "checkdnsrr($host, "MX")" Das ganze läst sich sicher auch in Delphi realisieren.

Falsch :!: Damit überprüfst Du die Existenz der Domain (alles nach dem @), aber nicht die Existenz der Emailadresse selbst. Der MX Eintrag definiert den (oder die) für die Emailverwaltung zuständigen Server. Nicht die verwalteten Emailadressen.

...:cat:...

P.S.: Ich verwalte zur Zeit für ca. 25 Kunden Domains, inkl. Emailhosting ;-) Damit verdiene ich einen Teil meines Geldes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz