oskarello: Email-Adresse abfragen

Hallo allerseits,

diese Frage habe ich schon mal gestellt, aber ich wußte den Link dazu nicht, und jetzt ist er mir wieder begegnet. Es geht darum, mit PHP eine Validierung einer eMail-Adresse aus einem Formular vorzunehmen, und zwar auf die tatsächliche Existenz.
Unter http://www.discreet.com/products/3dsmax/exporter/register/
muß man sich vor dem Download eines Files erst einmal eintragen, das danach ausgeführte Programm .../register/test_email.php3 checkt (angeblich) die angegebene Mailadresse.
Ich muß dazu sagen, daß ich zuerst einmal Adressen, die existieren, eingegeben habe, d.h. meine bestehenden auf suft-eu.at und gmx.net und gmx.at, aber keine wurde akzeptiert. Erst ein Fake mit bigfoot.com hat funktioniert.
Aber grundsätzlich: Arbeitet das php bloß mit Listen, oder kann man relativ schnell die Existenz einer eMail-Adresse herausfinden ? - Sprich, wie frage ich die return-mail eines Mailer-Daemons auf dem Server meines ISP ab (ächz) ?

Viele Grüße aus dem Neuland der Abmahnungen

Oskar

  1. Hallo,

    also wenn man sich eh erst irgendwie registieren muß, wäre es dann nicht einfacher irgendeine ID zu generieren, diese per Mail zu zu schicken und nur mit dieser kommt man ans File? Also quasi per Passwortzusendung.
    Der Aufwand (falls überhaupt möglich) die tatsächliche Existenz automatisch zu prüfen dürfte recht groß sein. Im Archiv dürften aber zumindest was Syntax und Host-Existenz betrifft Artikel stehen.

    Grüße aus Würzburg
    Julian

    1. Servus,

      also wenn man sich eh erst irgendwie registieren muß, wäre es dann nicht einfacher irgendeine ID zu generieren, diese per Mail zu zu schicken und nur mit dieser kommt man ans File? Also quasi per Passwortzusendung.

      Ich möchte das mit der ID nicht, obwohl es ja dann und wann angewendet wird. Ich selbst ärgere mich dann immer etwas, daß ich das eMail-Programm anwerfen muß.

      Der Aufwand (falls überhaupt möglich) die tatsächliche Existenz automatisch zu prüfen dürfte recht groß sein. Im Archiv dürften aber zumindest was Syntax und Host-Existenz betrifft Artikel stehen.

      Der ist sicher nicht gering. Im gegenständlichen Fall ist die Firma (Discreet/Kinetix) groß genug, um sich sowas leisten zu können.
      Ich habe aber irgendwo auch etwas von der Überprüfung sog. MX-Einträge gelesen. Vielleicht weißt Du was darüber ?

      Grüße

      Oskar

      1. Moin

        Ich möchte das mit der ID nicht, obwohl es ja dann und wann angewendet wird. Ich selbst ärgere mich dann immer etwas, daß ich das eMail-Programm anwerfen muß.

        Das ist aber die einzige korrekte Lösung.

        Der ist sicher nicht gering. Im gegenständlichen Fall ist die Firma (Discreet/Kinetix) groß genug, um sich sowas leisten zu können.
        Ich habe aber irgendwo auch etwas von der Überprüfung sog. MX-Einträge gelesen. Vielleicht weißt Du was darüber ?

        Das bringt alles nix.
        Also: Du kannst mit getmxrr() (http://www.php.net/manual/de/function.getmxrr.php) die im DNS-System für die jeweilige Domain/den Host (also alles was hinter dem @ steht) eingetragenen Mail Exchanger nachsehen. Das bedeutet aber nur, dass irgendwann irgendwo mal ein Admin einen MX-Record eingetragen hat. Es bedeutet aber nicht dass der dort verwiesene Host auch wirklich existiert, einen Mailserver laufen hat und dieser Mail entgegen nimmt. Neben diesen false positives fängst du dir evt. auch false negatives ein wenn der DNS-Server down ist.
        Dann kannst du die Email formal auf Korrektheit prüfen, also Sicherstellen dass sie dem entsprechenden RFC genügt. Aber damit hast du immernoch nicht sichergestellt dass ein entsprechender Email-Account auf dem (hoffentlich vorhandenen) Mailserver überhaupt existiert, Mails annimmt und gelesen wird, kriegst also einen Haufen false positives. Und es soll auch Mailboxen geben, wo die Addresse zwar formal falsch aussieht, die Mail aber trotzdem ankommt.
        Dann kannst du auch noch eine SMTP-Verbindung zum Zielmailserver aufbauen und einfach mal so tun als würdest du eine Mail an diese Addresse senden wollen und auf eine etwaige Fehlermeldung des Servers achten, oder du benutzt VRFY um den Mailserver direkt zu fragen ob das Postfach existiert. Ersteres bringt dir einen Haufen false positives, letzteres funktioniert auf den meisten Mailservern gar nicht.

        Fazit: Schick eine ID, der Aufwand ist auf deiner Seite nicht soo groß und den User wird es auch kaum stören, ab und zu muss er sein Postfach ja doch abfragen.

        Links: http://www.koehntopp.de/php/mail.html#mail-adresse-testen, http://www.koehntopp.de/php/mail.html#mail-adresse-gueltig, http://www.php.net/manual/en/function.mail.php (da sind auch die betreffenden RFCs verlinkt)

        --
        Henryk Plötz
        Grüße aus Berlin

        1. Servus Henryk,

          danke für diese wirklich ausführliche Antwort. Eigentlich sagst Du damit, daß die Leute von Discreet (3d Studio Max) nicht allzu weit denken, wenn sie die eMail auf diese Weise abfragen, die Du beschrieben hast. Die einzig sichere Methode ist wohl die mit der ID.

          Viele Grüße

          Oskar