Holger Jürs: Banale Frage: Kann ich eine Mail-Adresse prüfen???

Hallo nochmal!

Habe da noch eine Frage, die mir sehr auf der Seele brennt: Kennt jemand eine Moeglichkeit, in einem Perlscript die uebergebene Mailadresse zu pruefen, ob sie existiert?

Bei einer URL kann ich den Header auswerten ... aber bei einer Mailadresse???

Ich wuerde mich sehr ueber eine Antwort freuen!

Holger Jürs

  1. Habe da noch eine Frage, die mir sehr auf der Seele brennt: Kennt jemand eine Moeglichkeit, in einem Perlscript die uebergebene Mailadresse zu pruefen, ob sie existiert?

    Mail hinschicken und sicherstellen, dass kein Bounce zurückkommt. Eine andere Möglichkeit gibt es nicht.

    Peter

    1. Habe da noch eine Frage, die mir sehr auf der Seele brennt: Kennt jemand eine Moeglichkeit, in einem Perlscript die uebergebene Mailadresse zu pruefen, ob sie existiert?

      Mail hinschicken und sicherstellen, dass kein Bounce zurückkommt. Eine andere Möglichkeit gibt es nicht.

      Erlaubt das SMTP Protokoll keine Überprüfung von Benutzernamen?

      Sorry, kenn mich mit den technischen Details von e-mails nicht so gut aus... ;)

      Udo

      1. Hallo Udo

        Erlaubt das SMTP Protokoll keine Überprüfung von Benutzernamen?

        Meines Wissens nicht ... das sendet einfach, was ihm zwischen die Finger kommt ;-)
        Aber es geht ja auch eher um die Empfängerseite. Eigentlich müßte das Perlscript eine Mail lossenden und dann warten, ob die Mail als unzustellbar zurueck kommt. Da Mails manchmal aber eine ganze Weile lang unterwegs sein koennen, ist das innerhalb der Laufzeit eines CGI-Prozesses kaum realisierbar.

        Was eventuell noch denkbar waere, ist, Mailverzeichnisse wie Bigfoot oder Four11 aus dem CGI-Script heraus nach der eingegebenen Mailadresse zu durchsuchen (per URL-Parameteruebergabe) und die Mail nur dann zu versenden, wenn die Mailadresse in einem der Verzeichnisse bekannt ist. Doch das ist auch nicht so ganz realistisch, da zumindest hierzulande wohl nur eine Minderheit von Usern sich in jenen Verzeichnissen eingetragen hat.

        Sieht also schlecht aus.

        viele Gruesse
          Stefan Muenz

        1. Hallo,

          Meines Wissens nicht ... das sendet einfach, was ihm zwischen die Finger kommt ;-)

          Doch, es gibt einen SMTP-Befehl dafür, allerdings ist das nicht mehr auf allen Mailservern möglich...

          VRFY bla@foo.bar

          VRFY steht für "Verify". Gewiefte Sysadmins stellen ihren Mailserver jedoch so ein, daß der Mailserver bei einer VRFY-Anfrage mit der Antwort kommt, daß der Absender einfach mal rüberschicken soll, der Mailserver überprüft das dann lokal.

          Gruß,
          Besim

          BTW: Das Texteingabefeld scrollt am Ende nicht mehr sondern die Zeile geht einfach weiter. Kann man das wieder so einstellen wie früher?

  2. Holger,

    Habe da noch eine Frage, die mir sehr auf der Seele brennt: Kennt jemand eine Moeglichkeit, in einem Perlscript die uebergebene Mailadresse zu pruefen, ob sie existiert?

    du kannst per STring-Überprufung herausbekommen, ob die mail-adresse den Konventionen entspricht, d.h. den Klammeraffen hat, eine richtige TLD-Extension, keine Umlaute etc.

    aber mehr geht nicht....
    ich hätte das auch gerne, mein Postkarten-Script beschert mir pro Tag mindestens zwei Dutzend Irrläufer, weil die Absender der Postkarten zu doof waren, yahoo richtig zu tippen oder die Adresse überhaupt richtig zu schreiben. Die meisten Irrläufer werden übrigens von Amis oder von T-online-Usern produziert. Welche Schlüsse soll ich daraus ziehen?

    wenn du eine Lösung erhalten solltest oder findest, laß es mich wissen!

    Gruss
    Connie

    1. Die meisten Irrläufer werden übrigens von Amis oder von T-online-Usern produziert. Welche Schlüsse soll ich daraus ziehen?

      Genau diese ;->

      1. Die meisten Irrläufer werden übrigens von Amis oder von T-online-Usern produziert.

        Zählst du AOL zu "Amis"? ;-)

        SCNR,

        Mirko

  3. Hi!

    Gibt's da nicht den FINGER-Befehl (unter unix/linux) mit dem man nachsehen kann, ob's den user gibt?
    Ich bin da leider auch nicht so fit, aber soweit ich weiß, benutzen manche anti-spam-Tools den finger-Befehl um spammails abzufangen.

    mfG
    BRAND

    1. Hi!

      Gibt's da nicht den FINGER-Befehl (unter unix/linux) mit dem man nachsehen kann, ob's den user gibt?

      Den gibt es schon - aber Mail-User haben nichts mit Unix-Usern zu tun. Sie *können* identisch sein, müssen es aber nicht.
      Bei meiner Domain gibt es z.B. eigentlich nur einen User - aber alle anderen "user@rockt.nu" werden auch akzeptiert (und z.T. weitergeleitet oder von procmail vernichtet...)

      Ciao,
      Mirko

    2. Hi BRAND,

      nicht jeder server unterstütz finger.

      ich würd bei mir auch keinen finger offen lassen, weil man über den viel zu viel über user herausbekommt

      gute webserver haben nur nen smtp, http, ftp offen.
      meiner lässt sich nicht einmel anpingen.

      www.mediennetzwerk.de

      ALEX

  4. Hallo Holger!

    Habe da noch eine Frage, die mir sehr auf der Seele brennt: Kennt jemand eine Moeglichkeit, in einem Perlscript die uebergebene Mailadresse zu pruefen, ob sie existiert?

    Auch ich habe leider nicht die perfekte Lösung für Dich, aber ich hoffe, mit dem folgenden Script kann man zumindest einiges eingrenzen. Dieses Script extrahiert die Domain aus der E-mailAdresse und macht einen Tracert und wertet ihn aus.
    du kannst das Scrip mal testen hier ein paar Beispiellinks:

    http://www.wasser.de/cgi-bin/test1.cgi?email=wilm@wasser.de
    http://www.wasser.de/cgi-bin/test1.cgi?email=frank@gmx.de
    http://www.wasser.de/cgi-bin/test1.cgi?email=lol@selfhtml.de
    http://www.wasser.de/cgi-bin/test1.cgi?email=lol@selfhtmml.de
    http://www.wasser.de/cgi-bin/test1.cgi?email=andreas@mummmm.de

    also hinter "email=" einfach mal ne E-mail einsetzen.

    Ich hoffe zu jeder E-mail domain gibt es auch immer einen positiven tracert zur www-Domain, wenn nicht würd ich mich über anregungen freuen.

    Also, das spript wertet lediglich aus, ob die www.DOMAIN erreichbar ist und nicht ob die E-Mail gültig ist.

    ________________________
    $mark = index($email,"@") + 1;

    $mailhost = substr($email,$mark);

    $mailhost = "www.$mailhost";

    open (TRACE,"/usr/sbin/traceroute $mailhost");
    @trace = <TRACE>;
    close (TRACE);

    if(@trace >= 1){
    print "\n<br>Die E-Mail kann gültig sein!<br>\n";
    }
    else{
    print "\n<br>Die E-Mail ist nicht gülig!<br>";
    }

    ________________________

    Gruß Wilm

    1. Hallo!

      Auch ich habe leider nicht die perfekte Lösung für Dich, aber ich hoffe, mit dem folgenden Script kann man zumindest einiges eingrenzen. Dieses Script extrahiert die Domain aus der E-mailAdresse und macht einen Tracert und wertet ihn aus.

      Interessanter Ansatz!
      Aber nicht zu jeder Mail-Adresse muß es eine Homepage geben, und die muß schon gar nicht mit "www." anfangen.
      Kleiner Korrekturvorschlag: Mach' doch einfach einen Ping auf die Domain, oder, etwas besser: Schau' nach, ob es einen MX-Record zur Domain gibt. Aber in 99% der Fälle sollte der Ping auch reichen...
      Eine Nameserver-Überprüfung hätte aber einen Vorteil: Sie geht auch, wenn der Server mal ausgefallen ist.

      Ciao,
      Mirko

    2. Hi Wilm,

      versuch doch mal alexander.kiel@mediennetzwerk.de

      geht nicht - und warum?

      weil www.mediennetzwerk.de nicht anpingbar ist.

      ne seite ist schon dahinter, aber mein provider kann halt firewalls confen :-))

      und dein traceroute dauert eh viel zu lang und bei meiner domain hat er auch nach 5min wartezeit kein ergebniss gebracht, weil traceroute es immer weiter versucht - bis ins unendliche...

      probier mal - es bleibt beim nameserver meines providers hängen

      ALEX

  5. Hallo nochmal!

    Habe da noch eine Frage, die mir sehr auf der Seele brennt: Kennt jemand eine Moeglichkeit, in einem Perlscript die uebergebene Mailadresse zu pruefen, ob sie existiert?

    Bei einer URL kann ich den Header auswerten ... aber bei einer Mailadresse???

    Ich wuerde mich sehr ueber eine Antwort freuen!

    Es geht prinzipiell nicht 100%ig.
    Nachfolgend eine URL zu einem interessanten Artikel. der eine Teillösung beschreibt:

    http://www.perl.com/pub/2000/02/spamfilter.html

    Gruß
    Timothy

  6. Hi Holger!

    Ich benutze seit einiger Zeit eine Kombination aus Syntaxcheck der Adresse und dem Versuch, die Existenz der Domain zu ermitteln.

    #Sonderzeichen aus Mail-Adr entfernen, zugelassen: a-z, A-Z, _-+*$.@
    $email    =~ s/[^a-zA-Z0-9_-+\*$.@]//g;

    #SyntaxCheck

    ein oder mehr Zeichen vor @

    ein oder mehr Zeichen nach @

    2 oder mehr Zeichen nach .

    if ($email !~ /(.+)@(.+).(.{2,})/)
    {
    #Syntax falsch
    $emailok = 0;
    }
    else
    {
    #Syntax OK
    $emailok = 1;
    }
    .
    .
    .
    #Domain checken über den Umweg: ermitteln der IP
    $email_domain = substr($email,(index($email,"@") + 1));
    (@wwwhost_email) = unpack("C4",gethostbyname("www.".$email_domain));
    (@host_email) = unpack("C4",gethostbyname($email_domain));
    .
    .
    .

    Wenn weder @wwwhost_email noch @host_email ein Ergebnis enthält und/oder auch noch die Syntax falsch war, dann gebe ich die eingegebene Adresse nochmal aus und fordere den User auf, diese zu Überprüfen. Ändert er die Adresse, wird nochmal gecheckt, bestätigt er sie ungeändert, dann muss ich ihm wohl glauben...;-)
    Dieser Weg ist offensichtlich ein guter Kompromiss, denn die Anzahl der falschen eMail-Adressen ist stark zurückgegangen.

    Gruß Frank

    1. Ich benutze seit einiger Zeit eine Kombination aus Syntaxcheck der Adresse und dem Versuch, die Existenz der Domain zu ermitteln.

      ...

      Wenn weder @wwwhost_email noch @host_email ein Ergebnis enthält und/oder auch noch die Syntax falsch war, dann gebe ich die eingegebene Adresse nochmal aus und fordere den User auf, diese zu Überprüfen. Ändert er die Adresse, wird nochmal gecheckt, bestätigt er sie ungeändert, dann muss ich ihm wohl glauben...;-)
      Dieser Weg ist offensichtlich ein guter Kompromiss, denn die Anzahl der falschen eMail-Adressen ist stark zurückgegangen.

      Hallo Frank!

      Dein Tipp klingt sehr gut, ich hatte soetwas in der Art
      auch schon mal ueberlegt, bin dann aber wieder von
      abgekommen, aber ich denke, so wie Du es beschrieben
      hast, ist es ein guter Kompromiss....

      Vielen Dank!!!

      Holger