Script: eMail automatisch verifizieren

April 19, 2008 · Filed Under Gemischtes 
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.

  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.

passende Beiträge

Script: eMail automatisch verifizieren Moblack - Die UMTS Flatrate

Comments

Leave a Reply