Script: eMail automatisch verifizieren

April 19, 2008 · Filed Under Gemischtes · Comment 

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.

  1.  
  2. <?php
  3.  
  4. require_once ‘Net/POP3.php’;
  5. //anpassen!
  6. $emailserver = "pop.meinmailserver.de";
  7. $emailuser = "meinuser";
  8. $emailpw = "meinpasswort";
  9.  
  10. $pop3 = new Net_POP3();
  11. $erg=$pop3->connect($emailserver, 110);
  12. if (PEAR::isError($erg))
  13. {
  14.    echo $erg->getMessage();
  15. }
  16.  
  17. $erg=$pop3->login($emailuser, $emailpw);
  18. if (PEAR::isError($erg))
  19. {
  20.         //falls was nicht mit der eMail Verbindung funktioniert
  21.    echo $erg->getMessage();
  22. }
  23.  
  24.  
  25. //diese funktion verifiziert die eMail
  26. function activateparsebody($b){
  27.         foreach($b as $l){
  28.                 //hier wird jede einzelne Zeile auf den relevanten Link geprüft, hier WordPress wp-activate
  29.                 if(stristr($l,‘wp-activate’)){
  30.                         $x = split(" ",$l);
  31.                         foreach($x as $z){
  32.                                 if(stristr($z,‘wp-activate’)) $url =  $z;
  33.                         }
  34.                 }
  35.         }
  36.         //irgendwo übernommen, vermutlich php.net
  37.         $user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
  38.         $ch = curl_init();    // initialize curl handle
  39.         curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
  40.         curl_setopt($ch, CURLOPT_FAILONERROR, 1);              // Fail on errors
  41.         curl_setopt($ch, CURLINFO_HEADER_OUT, true);
  42.         curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
  43.         curl_setopt($ch, CURLOPT_PORT, 80);            //Set the port number
  44.         curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s
  45.         curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
  46.  
  47.         $document = curl_exec($ch);
  48.         $info = curl_getinfo($ch);
  49.         curl_close($ch);
  50.         if( $info[‘http_code’] == 200 ) {
  51.                 echo "blog aktiviert: $url";
  52.                 return true;
  53.         }
  54.         return false;
  55. }
  56.  
  57. $anzahl=$pop3->numMsg();
  58. for($i = 1;$i <= $anzahl; $i++){
  59.         $headers = $pop3->getParsedHeaders($i);
  60.         $subject = $headers[‘Subject’];
  61.         $body = split("\r\n",$pop3->getBody($i));
  62.         if( activateparsebody($body)) {
  63.                         //wenn ein aktivierungslink enthalten und positiv geöffnet, dann löschen
  64.                         $pop3->deleteMsg($i);
  65.         }
  66. }
  67. $pop3->disconnect();
  68. ?>

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.

Download

Lobeshymnen und Schmachrufe bitte in die Comments.

erfolgreiche Webseite hat Pagerank!

Oktober 28, 2007 · Filed Under Gemischtes · 3 Comments 

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!

Oktober 8, 2007 · Filed Under Gemischtes · 2 Comments 

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

September 7, 2005 · Filed Under Gemischtes · Comment 

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

September 7, 2005 · Filed Under Gemischtes · Comment 

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