Beat: Mail-Domain validieren, valider Approach

Hallo zusammen.

Ich habe eine Chat, bei welcher Accounts via Mail verifiziert werden.
Dennoch habe ich belästigungen durch Trolle, und ich möchte sendmail so selten wie nötig belästigen.

Deshalb die Frage: Ist es eine 100% gültige Annahme, dass gültige Maildomains IMMER auch nach IP aufgelöst werden können?

Konkret in diesem Beispiel:

  
use Socket;  
my $www = 'example.org'; #Beispiel  
my $ip_address = inet_aton( $www );  
if( $ip_address ){  
	print $www ,'=', inet_ntoa( $ip_address ), NL;  
}  
else{ print 'ERROR Is Not a Maildomain',NL; }  

Ich kann mir Bedingungen vorstellen, unter welchen die Domain->IP Auflösung nicht gelingt, also undef ausgibt. Aber in einem solchen Fall wäre auch sendmail wohl unfähig zur Zustellung.

mfg Beat

--
Aktuell:
Meine Musikseite
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische
  1. Tach!

    Deshalb die Frage: Ist es eine 100% gültige Annahme, dass gültige Maildomains IMMER auch nach IP aufgelöst werden können?

    Ohne IP kann im Internet nichts transportiert werden. Übelicherweise existieren DNS-Einträge, bevor die Domainnamen genutzt werden können. Der Fall, dass jemand seine Mailadresse schon vorbereitet hat, sich der ebenfalls neu angelegte Domainname aber noch nicht über das DNS rumgesprochen hat, kann sicherlich vernachlässigt werden.

    Ich kann mir Bedingungen vorstellen, unter welchen die Domain->IP Auflösung nicht gelingt, also undef ausgibt. Aber in einem solchen Fall wäre auch sendmail wohl unfähig zur Zustellung.

    Ja. Es sei denn, es handelt sich nur um eine vorübergehende (DNS-)Störung. Da Sendmail (oder der Einlieferungsmail-Server) mehrere Versuche unternimmt, könnte es (er) letzlich doch noch zum Ziel kommen.

    dedlfix.

    1. Ich kann mir Bedingungen vorstellen, unter welchen die Domain->IP Auflösung nicht gelingt, also undef ausgibt. Aber in einem solchen Fall wäre auch sendmail wohl unfähig zur Zustellung.

      Ja. Es sei denn, es handelt sich nur um eine vorübergehende (DNS-)Störung. Da Sendmail (oder der Einlieferungsmail-Server) mehrere Versuche unternimmt, könnte es (er) letzlich doch noch zum Ziel kommen.

      Die richtige ERROR-Message wäre wohl in der Art:
      "Kontakt mit dem Mailserver konnte nicht erstellt werden. Bitte versuchen Sie es später nochmal, überprüfen Sie allenfalls die Richtigkeit der Mailadresse".

      Ich vermute, es gibt keinen "billigen" Weg, die Art der Domain auf einen Mailserver einzugrenzen?

      Und nachdem die Domain-nach-IP Auflösung gelungen ist, sollte ich wohl auch die IPs
      127/8
      192.168/16
      aus gutem Grund auch verwerfen. ;)

      mfg Beat

      <o(((°>           ><o(((°>

      <°)))o><                     ><o(((°>o
      Der Valigator leibt diese Fische

      1. Tach!

        Ich vermute, es gibt keinen "billigen" Weg, die Art der Domain auf einen Mailserver einzugrenzen?

        Sicher nicht. Mails an bestimmte Domains werden an den im MX-Record genannten Server geschicht. Existiert kein solcher MX-Record, wird der A-Record genommen. Und damit erreicht man meist einen real existierenden Server, unabhängig davon, ob der nun Mails entgegennimmt oder nicht.

        Und nachdem die Domain-nach-IP Auflösung gelungen ist, sollte ich wohl auch die IPs
        127/8
        192.168/16
        aus gutem Grund auch verwerfen. ;)

        Muss nicht sein. Dein eigener Mailserver, falls da überhaupt einer unter der aufgelösten Adresse lauscht, sollte unplausible Mails blocken.

        Außerdem sind Massenhoster-Adressen bei Spamern sehr beliebt, und Wegwerfmailadressen bei normalen Nutzern, die dir keine ordentliche Adresse von ihnen geben wollen.

        dedlfix.

        1. Und nachdem die Domain-nach-IP Auflösung gelungen ist, sollte ich wohl auch die IPs
          127/8
          192.168/16
          aus gutem Grund auch verwerfen. ;)

          Muss nicht sein. Dein eigener Mailserver, falls da überhaupt einer unter der aufgelösten Adresse lauscht, sollte unplausible Mails blocken.

          Naja, theoretisch möglich, dass ich mal meine Chat-Software weitergebe und das in einem Intranet betrieben wird.

          Außerdem sind Massenhoster-Adressen bei Spamern sehr beliebt, und Wegwerfmailadressen bei normalen Nutzern, die dir keine ordentliche Adresse von ihnen geben wollen.

          Ja, ist mir klar.
          Man muss halt die Grenze finden, wo eine zusätzliche Prüfung sinnvoll ist (bei maildomain vertippt), und wo der sinnlosen Kampf gegen Trolle beginnt.

          mfg Beat

          --
          Meine Musikseite
          ><o(((°>           ><o(((°>
             <°)))o><                     ><o(((°>o
          Der Valigator leibt diese Fische
          1. Tach!

            Naja, theoretisch möglich, dass ich mal meine Chat-Software weitergebe und das in einem Intranet betrieben wird.

            Im Intranet braucht es doch keine Prüfung auf externe Erreichbarkeit. Da sollte sogar reichen, nur den ersten Teil anzugeben, weil @intranetname.example ja bekannt ist.

            dedlfix.

  2. Hi,

    Deshalb die Frage: Ist es eine 100% gültige Annahme, dass gültige Maildomains IMMER auch nach IP aufgelöst werden können?

    ich denke schon, glaube aber auch, das es nicht bei allen blizschnell geht.

    gibt es die möglichkeit auch in PHP, die adresse aufzulösen?
    ralphi

    1. Tach!

      Deshalb die Frage: Ist es eine 100% gültige Annahme, dass gültige Maildomains IMMER auch nach IP aufgelöst werden können?
      ich denke schon, glaube aber auch, das es nicht bei allen blizschnell geht.
      gibt es die möglichkeit auch in PHP, die adresse aufzulösen?

      Klar, gethostbyname(). Letztlich findet aber trotzdem eine DNS-Auflösung statt, und die kann unter Umständen etwas dauern.

      dedlfix.

      1. Letztlich findet aber trotzdem eine DNS-Auflösung statt, und die kann unter Umständen etwas dauern.

        mein ich doch - bei no-ip (mail port kostet!) eigener mail server dauerts erfahrungsgemäß etwas länger -bei yahoo und co sind die mailserver ziemlich schnell bei neuen adressen ;-)

  3. Tach,

    Deshalb die Frage: Ist es eine 100% gültige Annahme, dass gültige Maildomains IMMER auch nach IP aufgelöst werden können?

    nein, du suchst nach einem A-Record für die Domain, den muss es allerdings nicht geben, ein MX genügt für Mail, du musst erst den MX abfragen und den dazugehörigen A-Record suchen und nur falls es keinen MX gibt, ist der A für die Mails der Domain zuständig.

    mfg
    Woodfighter

    1. Moin!

      Deshalb die Frage: Ist es eine 100% gültige Annahme, dass gültige Maildomains IMMER auch nach IP aufgelöst werden können?

      nein, du suchst nach einem A-Record für die Domain, den muss es allerdings nicht geben, ein MX genügt für Mail, du musst erst den MX abfragen und den dazugehörigen A-Record suchen und nur falls es keinen MX gibt, ist der A für die Mails der Domain zuständig.

      Du musst erst DIE MX abfragen...

      Allerdings gebe ich zu bedenken, dass hiermit durchaus Aufwand erzeugt wird, der vermutlich gar nichts bringt. Sich eine gültige Maildomain auszudenken ist nicht schwierig. Und auch "example.com" funktioniert immer, nimmt nur tatsächlich keine Mails an. Ich nutze die Domain regelmäßig, wenn erkennbar ist, dass ich keine Mails vom System benötige, aber anders nicht durch das Formular komme.

      Insofern: "example.com" HAT IPs, und man kann die Domain auch nach Maildomain-Regeln auf eine solche IP auflösen. An dieser Stelle ist nur kein empfangsbereiter Mailserver.

      Den Mailserver abprüfen ginge zwar theoretisch noch mit PHP (einfach Port 25 connecten und auf Antwort warten), allerdings dürfte der Zugriff vom Webserver auf EXTERNE Ports 25 bei vielen Providern durch eine Firewall gesperrt sein. Es würde sonst einfach zuviel Spam verschickt.

      Diese Prüfung kann also relativ leicht scheitern, ohne deshalb eine Aussagekraft zu haben. Umgekehrt ist es sehr einfach, einfach nur eine existierende Mailadresse anzugeben, die naturgemäß irgendeinem funktionierenden Mailserver gehört, und der natürlich alle Mailprüfungen bestehen wird - außer der einen, dass man eine Mail hinschickt, in der ein Bestätigungslink drinsteht, den der Empfänger dann anklickt.

      Wenn also das Verschicken eines Bestätigungslinks ohnehin das einzig relevante Kriterium ist, und die Maildomainprüfung offensichtlich kaum einschränkenden Effekt auf den Mailversand hat, ist eigentlich die Frage: Was ist denn hier das wirkliche Problem? Ein paar Mails rausschicken kann's nicht sein.

      - Sven Rautenberg