|
iSn0w
Ehrenmitglied |
Hallo zusammen,
Jeder kennt es - das Problem mit den falschen Emailadressen. Doch mit diesem Skript könnt ihr das einigermassen eindämmen. Es prüft eine EmailAdresse auf Syntax, Gültigkeit und auf Spammails. Hier der Code (Sollte selbst erklärend sein.) Code:
<script type="text/javascript"> /* <![CDATA[ */ function createAjaxRequest() { var xmlHttp; if ( window.XMLHttpRequest ) { xmlHttp = new XMLHttpRequest(); } else if ( window.ActiveXObject ) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else { alert("Ihr Webbrowser unterstuetzt leider kein Ajax!"); } return xmlHttp; } function checkEmail(email) { var reqObj = createAjaxRequest(); var emailStr = document.getElementById(email).value; document.getElementById(email+'_result').innerHTML = 'Laden bitte warten...'; reqObj.open('POST', 'validateEmail.php?mode=check', true); reqObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); reqObj.send('Email='+emailStr); reqObj.onreadystatechange = function(){ if (reqObj.readyState == 4) { var response = reqObj.responseText; document.getElementById(email+'_result').innerHTML = response; } } } /* ]]> */ </script> <?php /** * @author iSn0w * @copyright 2010 */ /** * Checks an Email * * @name validateEmail * @return string * * @param string $Email Email-Adress */ function validateEmail($Email) { // prüfen ob Email nicht leer ist if (isset($Email) && !empty($Email)) { // auf Syntax prüfen (string@string.string) if (preg_match("/^[^@]+@.+\.\D{2,5}$/", $Email)) { // Splitten $Split = explode('@', $Email); // Domain herausfinden $Domain = $Split[(count($Split) - 1)]; // prüfen ob Server online ist. if (gethostbyname($Domain) != $Domain) { // Spam Emails hier eintragen (mit , trennen) $Not_Valid = 'test.de,hallo.de'; $Split = explode(',', $Not_Valid); // Prüft auf Spammails if (!in_array(strtolower($Domain), $Split)) { return 'valid'; } else { return 'spam_mail'; }; } else { return 'not_valid'; }; } else { return 'syntax'; }; } else { return 'empty'; }; } if (isset($_GET['mode']) == 'check') { // Email prüfen $validatedEmail = validateEmail($_POST['Email']); if ($validatedEmail == 'valid') { // nächster schritt echo '<span style="color: green;">Die Email '.htmlentities($_POST['Email']).' scheint gültig zu sein.</span>'; } else { switch ($validatedEmail) { // leer case 'empty': echo '<span style="color: red;">Die Email-Adresse ist leer!</span>'; break; // falscher syntax case 'syntax': echo '<span style="color: red;">Der Email-Syntax ist falsch!</span>'; break; // nicht gültig case 'not_valid': echo '<span style="color: red;">Der Server wurde nicht gefunden!</span>'; break; // nicht erwünscht case 'spam_mail': echo '<span style="color: red;">Keine erwünscht Email-Domain</span>'; break; // fehler default: echo 'Unbekannter Fehler'; } } } else { // Forumlar echo '<input id="email" onkeyup="checkEmail(\'email\');" /> <br /><br /> <div id="email_result" style="font-family: Verdana;font-size: 11px;"></div>'; } ?> Viel spaß damit! mfg iSn0w Zitat von Abraham Lincoln:
„ Man hilft den Menschen nicht, wenn man für sie tut, was sie selbst tun können. “ — Abraham Lincoln |
|
Sp4x
Neuling |
Das ist ja mal Geil
Aufhedenfall sehr gute idee ... gleich mal einbauen ![]() <?=$brain->get->known_persons->call->getNoobs();?> is an <?=$brain->get->string->noob;?>
|
|
iSn0w
Ehrenmitglied |
Freut mich, dass es dir gefällt.
Ich hatte mal eine API für Spammails mit über 1'000 Einträgen. Leider hab ich die nicht mehr, sonst würde ich so eine Schnittstelle einbauen. Aber ich glaube jeder ist dazu im Stande sich eine Liste von Spammail anbietern zu holen. ![]() Mfg iSn0w Zitat von Abraham Lincoln:
„ Man hilft den Menschen nicht, wenn man für sie tut, was sie selbst tun können. “ — Abraham Lincoln |
|
Sp4x
Neuling |
Zitat von iSn0w:
Freut mich, dass es dir gefällt. Ich hatte mal eine API für Spammails mit über 1'000 Einträgen. Leider hab ich die nicht mehr, sonst würde ich so eine Schnittstelle einbauen. Aber ich glaube jeder ist dazu im Stande sich eine Liste von Spammail anbietern zu holen. ![]() Mfg iSn0w Klar aufjedenfall ... bekommt man das hin schade um die API ^^<?=$brain->get->known_persons->call->getNoobs();?> is an <?=$brain->get->string->noob;?>
|
|
Ti-Systems
Moderator |
...
Hier mal ein paar: Code: $domains = array("trash-mail.com","trash-mail.de","temporaryinbox.com","trashmail.net","dodgit.com","spamgourmet.com","mailexpire.com","sofort-mail.de","dodgeit.com","kasmail.com","mailinator.net","e4ward.com","sneakemail.com","spamex.com","mailshell.com","spammotel.com","netmails.net","emailias.com","nervmich.net","nervtmich.net","wegwerfadresse.de","bumpymail.com","spambog.com","spambog.de","discardmail.com","discardmail.de","spambog.ru","wbb3.de","cust.in","imails.info","great-host.in","teewars.org","super-auswahl.de","kulturbetrieb.info","bio-muesli.net","bio-muesli.info","0815.ru","sandelf.de","recode.me","emailtaxi.de","3d.painting.com","nomail2me.com","emailias.com","jetable.net","mailinator.com","messagebeamer.de","punkass.com","spamtrail.com","spam.la", "nospamfor.us", "nospam4.us", "yopmail.com" ;Aber natürlich gibt es noch tausende mehr. Ich würde mal bei Google suchen. Meistens findest du da eine Liste im Textformat (Pro Zeile eine Domain) und dann kannst du die ja einfach per PHP einlesen ![]() mfg Timo |
|
iSn0w
Ehrenmitglied |
Nur zur Information: In meinem Code ist es $Not_Valid, und diese werden mit einem , getrent. ( Nur für die, die es in mein Code einbauen wollen).
mfg Zitat von Abraham Lincoln:
„ Man hilft den Menschen nicht, wenn man für sie tut, was sie selbst tun können. “ — Abraham Lincoln |
|
Ti-Systems
Moderator |
@Marco: Vielleicht könnte man auch ein bisschen Eigeninitative zeigen und dein Code ein wenig umschreiben?
![]() mfg Timo |
|
iSn0w
Ehrenmitglied |
Ja ne ist mir klar, aber es gibt da bestimmte Kandidaten die wirklich keine Selbstinitative zeigen *zu Meenu schiel*. Man(n) weiß ja auch nie über die User richtig bescheid
![]() mfg iSn0w Der Eintrag wurde am 30.07.10 05:12 Uhr von iSn0w geändert. Zitat von Abraham Lincoln:
„ Man hilft den Menschen nicht, wenn man für sie tut, was sie selbst tun können. “ — Abraham Lincoln |
|
Goeran_E
Administrator |
Zitat von dasch:
[quote=iSn0w]Nur zur Information: In meinem Code ist es $Not_Valid, und diese werden mit einem , getrent. ( Nur für die, die es in mein Code einbauen wollen). mfg Du hast den auch nur kopiert ...[/quote] Solche netten Anschuldigungen bitte begründend abschließen. No one cares about God. They all just wanna roll with his kid Jesus.
|
| 8 Beiträge | Beitrag schreiben |