Email-Adresse auf Erreichbarkeit prüfen

  • PHP

  • yannikst
  • 1522 Aufrufe 4 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Email-Adresse auf Erreichbarkeit prüfen

    Hallo Leute!

    Auf meiner Website habe ich ein Kontaktformular. Leider passiert es in letzter Zeit oft, dass ich auch hierüber viel Spam bekomme.

    Deshalb möchte ich gerne eine Methode wissen, mit der ich die eingegebene Email-Adresse nicht nur auf Syntax (denn das bringt nichts), sondern auch auf Erreichbarkeit prüfen kann!

    Zwar könnte ich das DOI-Verfahren anwenden, aber für ein Kontaktformular!? Wäre nur die letzte Lösung...

    Ah und Captcher o.ä. ist bei manuellem Spam auch net das Wahre...
  • also sowas is mir nicht bekannt.

    du könntest höchstetns noch den host probieren, ob es den überhaupt gibt, aber direkt die mailadresse, eher unwahrscheinlich das zu prüfen. dann müsstest du ja erst auf nen request warten, ob eine fehlermeldung vom emailhost zurück kommt, oder nicht. und das kann in einzelfällen schonmal mehrere minuten dauern.


    noch weiterer schutz, auch wenn nicht immer erfolgreich (vorallem bei proxys) ne ip sperre reinzumachen. das demmt denke ich auch ein wenig.
    und die captcha abfrage würde ich auch für sinnvoll halten, denn nach 2-3 mails vergeht dem spammer sicher die lust.

    aber richtig schützen kannst du dich glaub ich nicht...

    mfg
  • Stimme mruniverse zu. Eine Alternative könnte auch sein, dass du anstatt E-mails zu versenden, ein Ticket-System erstellst. Spam ist einfach zu löschen und niemanden verwundert die Bestätigungsmail ^^

    Denn auch wenn es möglich wäre die E-mail Adresse zu überprüfen, man natürlich auch E-mail Adressen nehmen kann, die irgendwo in einem Impressum stehen.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Was auch möglich wäre, das du ein Bestätigungsemail an die angegebene Adresse schickst und der User dann mit desen Bestätigung erst die Nachricht vom Kontakformular an dich sendet.


    Alternativ hab ich noch ein Script das dir evtl. helfen könnte :

    PHP-Quellcode

    1. <?php
    2. function CheckEmail($email) {
    3. list($user, $domain) = split("@", $email, 2);
    4. getmxrr($domain, $mxlist);
    5. $return = array(false, "No email.");
    6. foreach($mxlist as $mx) {
    7. $fp = fsockopen($mx, 25, $errno, $errstr, 20);
    8. if(!$fp) continue;
    9. socket_set_blocking($fp, false);
    10. $s = 0;
    11. $c = 0;
    12. $out = "";
    13. do {
    14. $out = fgets($fp, 2500);
    15. if(ereg("^220", $out)) {
    16. $s = 0;
    17. $out = "";
    18. $c++;
    19. } else {
    20. if(($c>0) && ($out=="")) break;
    21. else $s++;
    22. }
    23. if($s==9999) break;
    24. }
    25. while($out=="");
    26. socket_set_blocking($fp, true);
    27. fputs($fp, "HELO\n" );
    28. $out = fgets($fp, 3000);
    29. fputs($fp, "MAIL FROM: user@host.com\n" );
    30. $out = fgets($fp, 3000);
    31. fputs($fp, "RCPT TO: $email\n");
    32. $out = fgets($fp, 3000);
    33. if(ereg("^250", $out)) {
    34. $return = array(true,$out);
    35. } else {
    36. $return = array(false,$out);
    37. }
    38. fputs($fp, "quit\n");
    39. fclose($fp);
    40. if($return[0]) break;
    41. } return $return;
    42. } $ret = CheckEMail("user@host.com");
    43. echo($ret[0]." ".$ret[1]);
    44. ?>
    Alles anzeigen



    greets
    MP3 Up's :
    01 02 03 04 05
  • Ja, ok, das wäre dann double opt in...

    Das kenne ich ja, das wollte ich halt vermeiden, weil es für den User Mehrarbeit bedeutet...

    Aber es wird dann wohl kein Weg drum rum führen! Danke...