Script: eMail automatisch verifizieren
Wer hin und wieder mal ein paar Accounts anlegen muss, hat viel damit zu tun, seine eMails zu checken und dann den Aktivierungslink anzuklicken. Aber das muss nicht sein.
Vorrausetzungen:
Am Besten wir haben eine Catch-All Adresse für diese Spielerei eingerichtet. Catch-All bedeutet, dass alle eMails an diese Domain ( also egal welcher Empfängername ) an ein bestimmtes eMail-Postfach geleitet werden. Somit kann man für die verschiedenen Accounts auch unterschiedliche eMail Adressen benutzen, ohne sich extra Passwörter und Usernamen merken zu müssen.
Alternativ kann man natürlich die zu benutzenden eMail-Adressen an eine andere weiterleiten. Hauptsache wir sammeln alle relevanten eMails in einem Postfach.
PEAR
Ich setze für das Script eine Pear Klasse ein. Wer nicht weiß, was das ist, oder funktioniert, fragt entweder seinen Provider oder liest hier nach
Das Script:
Dieses Script funktioniert für WordPress Blogs. Die Aktivierungsemail enthält einen Link zur wp-activate.php. Das Script lässt sich einfach auf andere Fälle anpassen. Download weiter unten.
-
-
<?php
-
-
require_once ‘Net/POP3.php’;
-
//anpassen!
-
$emailserver = "pop.meinmailserver.de";
-
$emailuser = "meinuser";
-
$emailpw = "meinpasswort";
-
-
$pop3 = new Net_POP3();
-
$erg=$pop3->connect($emailserver, 110);
-
if (PEAR::isError($erg))
-
{
-
}
-
-
$erg=$pop3->login($emailuser, $emailpw);
-
if (PEAR::isError($erg))
-
{
-
//falls was nicht mit der eMail Verbindung funktioniert
-
}
-
-
-
//diese funktion verifiziert die eMail
-
function activateparsebody($b){
-
foreach($b as $l){
-
//hier wird jede einzelne Zeile auf den relevanten Link geprüft, hier WordPress wp-activate
-
foreach($x as $z){
-
}
-
}
-
}
-
//irgendwo übernommen, vermutlich php.net
-
$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
-
$ch = curl_init(); // initialize curl handle
-
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
-
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors
-
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
-
curl_setopt($ch, CURLOPT_PORT, 80); //Set the port number
-
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s
-
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
-
-
$document = curl_exec($ch);
-
$info = curl_getinfo($ch);
-
curl_close($ch);
-
if( $info[‘http_code’] == 200 ) {
-
echo "blog aktiviert: $url";
-
return true;
-
}
-
return false;
-
}
-
-
$anzahl=$pop3->numMsg();
-
for($i = 1;$i <= $anzahl; $i++){
-
$headers = $pop3->getParsedHeaders($i);
-
$subject = $headers[‘Subject’];
-
if( activateparsebody($body)) {
-
//wenn ein aktivierungslink enthalten und positiv geöffnet, dann löschen
-
$pop3->deleteMsg($i);
-
}
-
}
-
$pop3->disconnect();
-
?>
Ich kann natürlich keine Garantie oder irgendeinen Support für dieses Script geben. Ich nutze es auch in etwas angepasster Form, aber man sollte die Idee dahinter erkennen.
Lobeshymnen und Schmachrufe bitte in die Comments.
erfolgreiche Webseite hat Pagerank!
Lange ist es her, dass ich über mein “erfolgreiche Webseite“-Projekt geschrieben habe. Im Vergleich zum Original bin ich zwar nur bedingt erfolgreich, aber das ist ja auch wieder nur subjektiv zu bewerten.
Jedenfalls hat mein Projekt nun endlich einen Pagerank bekommen. Und zwar einen PR3. Ist jetzt keine Granate, aber da ich eh auf den PR pfeiffe ist mir das auch egal. Interessanter ist, dass sich die Webseite konstant unter den Top10 der relevanten Suchbegriffe aufhält und immer mal wieder ein paar Sales erzeugt. Und dass, ohne dass ich auch nur das Geringste an Mehraufwand betreibe.
Sobald meine neue Applikation fertig ist, werde ich die Webseite darauf umstellen. Mit einer Beta-Version des Scriptes erzeuge ich bereits sehr gute Ergebnisse ;) Evtl. werde ich dann sogar die Webseite inkl. Script vorstellen. Wer mag, kann natürlich auch versuchen herauszufinden, auf welcher meiner Domains das Script schon läuft. Alleine bei united-domains (aff) habe ich bereits 55 Domains liegen, viel Spass beim Suchen ;)
PHP ist ja so cool!
Ich programmiere ja nun schon seit ca. 8 Jahren in PHP ( damals noch PHP3 ). Ich würde nie behaupten ein Experte zu sein, aber dank php.net und google bin ich durchaus in der Lage auch mal etwas komplexere Aufgaben zu lösen. Gerade aktuell schreibe ich mir ein Script, das eksessiv auf XML, MySQL und diversen selbstgeschriebenen Klassen aufsetzt.
Und dabei bin ich auf ein paar Dinge gestossen, die ich hier mal kurz vermerken will. Zum Einen ist da das PHP Performance Blog, dass man unbedingt abonnieren sollte, zum anderen wie immer PHP.net. Die Quelle schlecht hin.
Und dank Shoemoney muss ich gerade Plugin-Entwicklern die Lektüre der Memcache-Funktionen ans Herz legen. Damit kann man gerade bei hochfrequentierten Seiten ( wie z.b. der Robert ) entlasten. Der Trick liegt hier dabei, dass man einige Daten im Speicher cached und somit File-/Datenbankzugriffe einsparen kann. Super Sache das!
Dank Esrun habe ich mich etwas mit Content- und Keywords-Scrapern auseinandergesetzt ( natürlich rein wissenschaftlich ) und auch das hat mich mal wieder etwas weitergebracht. Nicht alles, was ein Blackhat macht, muss man auch im Blackhat-Bereich nutzen, einige Sachen können auch richtig gute “saubere” Hilfen sein. In diesem Sinne habe ich mir mal wieder ein Buch über reguläre Ausdrücke ( Amazon: Mastering Regular Expressions (Mastering) ) zu Gemüte geführt. Ganz vergessen, was ich damit schon mal alles machen konnte ;)
Ansonsten bin ich gerade total in uksort und ähnliche verliebt. Was ich mit MySQL selbst nicht oder nur unbefriedigend lösen konnte, kann ich mir so selbst hervorragend zusammenbasteln. Wie im Titel geschrieben: Cool!
So, dass musste jetzt mal gesagt werden.
CSS Zengarden Archive stark verbessert
In einem passenden Blog-Entry beschreibt Dave Shea, was er alles an dem CSS Zen Garden Archiv geändert hat.
Im Hintergrund arbeitet nun eine Datenbank, das ganze Prozedere ist also jetzt automatisierter. Die Kategorien wurden optimiert, damit ein Design nun auch in verschiedenen Kategorien erscheinen kann.
Lest Euch den Beitrag durch und besucht das Archiv nochmal als kleine Anregung für daheim.
PHP5.0.5 ist draussen
Die genaueren Änderungen findet man natürlich im Changelog.
Mit dieser Version wurde auch die Sicherheitslücke im XML-RPC geschlossen, die auch schon ein Update bei WordPress verursachte.
Mehr Infos wie immer bei den Entwicklern auf php.net

