email validation

Das ist ja gerade der sin daran man erspart sich die Sache mit dem Bestätigungslink.Früher sendete man ein Mail um zu schaun obs die gibt. Mitterweillen sind schon einige drauf gekommen das das garnicht nötig ist weil man die Mail adresse auch so abfragen kann.
Die Bestätigung einer E-Mail-Adresse dient nicht nur der Prüfung, ob die Adresse tatsächlich existiert, sondern vor allem auch, ob das Konto demjenigen zugänglich ist, der sie angegeben hat.
 
Genau das wars,... Danke

jetzt muss es ich nicht mehr suchen (habs auch nochmal gebraucht,... weil ich meines verpfuscht hab und keine sicherung gemacht habe) ;)
 
Bitte gerne

Und hab ihr euch nun das Script angeschaut ?

Ich hab mal kurz reingeschaut was ich so auf den ersten Blick gesehen hab.Werden folgende Prüfung durchgeführt.

1. Ob mail format stimmt (kennen wir ja schon bereiz Reguläre ausdruck)
(^([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,6}\$)

2.) Wird ein Mail Text erzeugt der nur einen Zeillenumbuch beinhaltet (/n)

3.) Werden noch Sonderzeichen ersetzt schutz vor Mainupulation bei der Eingabe

4.)Wir geprüft ob es den Mail host name gibt also das was nach @ kommt

5.) Es wird eine Ftp Verbindung aufgebaut (also ein Login versuch in den Mail acount)
Wird diese Adresse erreicht gibt er true aus Mail adresse vorhanden ansonsten false. Server konnte nicht erreicht werden.
Das ganze läuft mit einer Zeitspanne wo getestet wird kommt in der Zeit keine Meldung wird angenohmen das es die Mail adresse nicht gibt.

Also im Grunde eh schon das was ich vorher gesagt habe nur das Script nicht versucht ein Mail zu senden sondern sich versucht in den Mail acount einzulogen und dabei achtet ob ein Rückgabe kommt oder der fehler code seite nicht erreichbar.


Zusammenfassend kann man sagen wenn alle vorigen Prüfung ok waren wird eine Verbindung zum Mail Acount aufgebaut und kontrolliert ob der erreichbar ist.

Mfg Splasch
 
Zuletzt bearbeitet:
Ich persönlich finde es hald auf wenig besuchte seiten (100 - 200 User am tag) besser 4 sekunden zu warten bei der registrierung als ne antwortmail,... klar könnte man jetzt noch die mailadresse von einen freund oder ner firma eintragen aber das machen nur die wenigsten leute,... bei missbrauch, wird ein neues system eingesetz bei dem man dann halt mit nen link aktivieren muss.

Gruß
 
Also das Script funtkioniert für Meine E-Mail Adressen nicht...

Code:
Recipient address rejected: Mail appeared to be SPAM or forged. Ask your Mail/DNS-Administrator to correct HELO and DNS MX settings or to get removed from DNSBLs
This host states that the address is not valid.

Also ein 100% sicherer Weg ist es auch nicht.
 
@Michael Engel
Also das Script funtkioniert für Meine E-Mail Adressen nicht

Ja das ist der Nachteil an der Sache wenn der Timeout überschritten wird man abgelehnt.
Also wenn Deine Mail server zu langsam antworten haste keine Chance durch die Mail kontrolle zu kommen.

Das einzige was du versuchen könntes ist die Timeout Zeit etwas zu erhöhen.

Ich Persönlich halte nicht viel von so stark eingeschränkten Kontrollen da wie man sieht sie oft auch realen Mailadressen einen Riegel davor schieben.

Man kann eben das komplizierte verfahren verwenden oder es sich einfach machen.

Warum immer kompliziert wens auch einfach geht. Mail schicken und schaun ob sie versendet wurde wenn nicht dann ist die Mail adresse ungültig.
Konnte die Mail verschickt werden dann in die Datenbank eintragen ansonsten fehlermeldung ausgeben ist noch immer die komfortabelste Lösung ohne den User lang rum zu ärgern.

PHP:
if(@mail($to,$betreff,$inhalt,"From: $from\r\nX-Priority: 1 (Highest)")){
		echo ("Daten wurden Erfolgreich Übermittlet!");
		}Else{ print "<center><b>Daten konnten nicht Übermittelt werden</b></center>";} // im Else fall formular noch mal anzeigen und ungültig mail adresse ausgeben

Wenn man will kann man davor noch eine Prüfung mit Regulären Ausdruck machen.
Das system ist dann genau so gut wie das andere Script mit dem unterschied das es keine User ärgert . Der Nachteil daran wegwerf Mailadressen gehen dabei auch durch. Beim anderen Script werden sie geblockt aber wie man sieht auch gültige adressen was ja nicht sein sollte.

Mfg Splasch
 
Zuletzt bearbeitet:
Es ist kein Timeout, der Mailserver Graylistet den Abfragenden Server für eine Weile. Weil ihm die Art des Auftrags nicht passt.

Aber warum ist ja auch egal, ich meinte nur das die Lösung auch in keiner weise wirklich 100% Sicher ist ,)
 
Es reicht meiner Meinung nach eigentlich wenn man die Form der angeblichen Mail-Adresse analysiert und dann entscheidet, ob sie valide ist oder nicht. Dabei kann die neue PHP-Filter-Extention (ext/filter) sehr hilfreich sein. Diese erlaubt die Validierung ohne kompliziertes RegExp, dass dann meistens ja doch nichts taugt.
MfG, Andy
 
Ich denke das die Aussagen von splasch nicht alle stimmen.
Das Script und die Seite verbinden zum MX der Domain und führen die SMTP Schritte durch bis zu der Eingabe des Mailtextes, dann wird abgebrochen.
Also HELO, MAIL FROM, RCTP TO ende


2.) Wird ein Mail Text erzeugt der nur einen Zeillenumbuch beinhaltet (/n)
5.) Es wird eine Ftp Verbindung aufgebaut (also ein Login versuch in den Mail acount)
Wird diese Adresse erreicht gibt er true aus Mail adresse vorhanden ansonsten false. Server konnte nicht erreicht werden.
Das ganze läuft mit einer Zeitspanne wo getestet wird kommt in der Zeit keine Meldung wird angenohmen das es die Mail adresse nicht gibt.

Also im Grunde eh schon das was ich vorher gesagt habe nur das Script nicht versucht ein Mail zu senden sondern sich versucht in den Mail acount einzulogen und dabei achtet ob ein Rückgabe kommt oder der fehler code seite nicht erreichbar.

Das Script achtet natürlich darauf ob ein Connect zum SMTP Mailserver generell funktioniert (kein FTP!), aber das eigentliche ist, ob der Mailserver der Mailadresse bei einem RCTP TO command der Mailserver sagt ob er die Mailadresse bei sich kennt. Der TimeOut bei einem fsockopen liegt default bei mehreren Sekunden und sollte da ein TimeOut auftreten lohnt sich glaube ich nichtmal der Versuch eine E-Mail dort hinzusenden.
Es wird auch nicht versucht sich irgendwo in einen Mail Account "einzuloggen" oder eine E-Mail mit "\n" vorbereitet.
Also das Script funtkioniert für Meine E-Mail Adressen nicht...
Ja das ist der Nachteil an der Sache wenn der Timeout überschritten wird man abgelehnt.
Also wenn Deine Mail server zu langsam antworten haste keine Chance durch die Mail kontrolle zu kommen.

Das hat hier auch nichts mit einem Timeout zu tun, sondern ob das Relaying erlaubt ist auf dem Mailserver oder Filter eingesetzt werden. Das Script von der geposteten Website macht ein MAIL FROM mit der Adresse info@phpclasses.org, also einer Domain die der Mailserver lokal nicht konnektiert hat oder eine IP die auf einer Grey/Blacklist steht. Das ist schonmal ein schlechter Start und eigentlich ist auf solch einem konfigurierten Mailserver jegliche weitere Eingabe sinnlos, da er sowieso die Mail nicht versenden wird. Das wiederrum ist gut gegen spam oder sonstigen Müll der versendet wird.

Ich würde in dem ganzen die Lösung von Gumbo nutzen. Mir ist es nicht nur wichtig, das eine E-Mail ein gültiges Format hat oder der Mailserver die E-Mailadresse kennt, sondern ob der User auch den Mailaccount nutzen kann und Rechte dazu hat.
Wenn ein Benutzer sich für einen Dienst registriert und ein Formular ausfüllt ist es meistens mehr Arbeit als anschliessend sich die Registrierungsmail anzuschauen und auf einen Link zu klicken, der die Mailadresse bestätigt.
Sollte der Benutzer nicht diese 10 Sekunden Zeit haben, dann hat er nicht wirklich Interesse an dem Angebot was ich anbiete oder mein Content den ich liefere ist wohl nicht interessant genug (präsentiert|beworben).

Das Thema wird hier sicherlich alle 4 Wochen bestimmt 5 mal besprochen und es gibt immer verschiedene Meinungen.
Mir ging es erstmal primär darum diese Timeout These zu entschärfen, weil sonst andere User auf die Idee kommen einfach den Timeout hochzusetzen und sich dann wundern warum es immer noch nicht geht.

Gruss
 
Zurück