iSn0w
Ehrenmitglied
- 28.07.10 21:32 Uhr
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&uuml;fen ob Email nicht leer ist
if (isset($Email) && !empty($Email)) {
// auf Syntax pr&uuml;fen (string@string.string)
if (preg_match("/^[^@]+@.+\.\D{2,5}$/", $Email)) {
// Splitten
$Split = explode('@', $Email);
// Domain herausfinden
$Domain = $Split[(count($Split) - 1)];
// pr&uuml;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&uuml;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&uuml;fen
$validatedEmail = validateEmail($_POST['Email']);
if ($validatedEmail == 'valid') {
// n&auml;chster schritt
echo '<span style="color: green;">Die Email '.htmlentities($_POST['Email']).' scheint g&uuml;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&uuml;ltig
case 'not_valid':
echo '<span style="color: red;">Der Server wurde nicht gefunden!</span>';
break;
// nicht erw&uuml;nscht
case 'spam_mail':
echo '<span style="color: red;">Keine erw&uuml;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
- 28.07.10 23:41 Uhr
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
- 28.07.10 23:56 Uhr
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
- 29.07.10 12:46 Uhr
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
- 29.07.10 16:25 Uhr
...
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
- 29.07.10 18:24 Uhr
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
- 29.07.10 23:28 Uhr
@Marco: Vielleicht könnte man auch ein bisschen Eigeninitative zeigen und dein Code ein wenig umschreiben?

mfg Timo

iSn0w
Ehrenmitglied
- 30.07.10 05:11 Uhr
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
- 04.08.10 18:40 Uhr
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
©2010 Itschi.Net