NotifySend.php
[Pman.Core] / NotifySend.php
index 59b0c11..0eef1c7 100644 (file)
@@ -109,8 +109,11 @@ class Pman_Core_NotifySend extends Pman
             $this->errorHandler("already sent - repeat to early\n");
         }
         
-        $this->server = DB_DataObject::Factory('core_notify_server')->getCurrent($this);
-
+        $this->server = DB_DataObject::Factory('core_notify_server')->getCurrent($this, $force);
+        if (!$force &&  $w->server_id != $this->server->id) {
+            $this->errorHandler("Server id does not match - use force to try again\n");
+        }
+        
         
         if (!empty($opts['debug'])) {
             print_r($w);
@@ -428,7 +431,10 @@ class Pman_Core_NotifySend extends Pman
         
             
             $res = $mailer->send($p->email, $email['headers'], $email['body']);
-             $this->debug("GOT response to send: ". var_export($res,true)); 
+            if (is_object($res)) {
+                $res->backtrace = array(); 
+            }
+            $this->debug("GOT response to send: ". print_r($res,true)); 
             
             if ($res === true) {
                 // success....
@@ -461,13 +467,13 @@ class Pman_Core_NotifySend extends Pman
                     }
                 }
                  
-                $this->errorHandler( " SENT {$w->id} - {$w->remarks}", true);
+                $this->errorHandler( " SENT {$w->id} - {$ev->remarks}", true);
             }
             // what type of error..
             $code = empty($res->userinfo['smtpcode']) ? -1 : $res->userinfo['smtpcode'];
             if (!empty($res->code) && $res->code == 10001) {
                 // fake greylist if timed out.
-                $code = 421;
+                $code = -1; 
             }
             
             if ($code < 0) {
@@ -484,7 +490,7 @@ class Pman_Core_NotifySend extends Pman
                     $errmsg=  $res->userinfo['smtpcode'] . ':' . $res->userinfo['smtptext'];
                 }
                 //print_r($res);
-                $this->addEvent('NOTIFY', $w, 'GREYLISTED - ' . $errmsg);
+                $ev = $this->addEvent('NOTIFY', $w, 'GREYLISTED - ' . $errmsg);
                 
                 $this->server->updateNotifyToNextServer($w,  strtotime('NOW + ' . $retry . ' MINUTES'),true);
                 
@@ -515,14 +521,17 @@ class Pman_Core_NotifySend extends Pman
                 $errmsg=  $res->userinfo['smtpcode'] . ':' . $res->userinfo['smtptext'];
             }
             
-            $ev = $this->addEvent('NOTIFYFAIL', $w, ($fail ? "FAILED - " : "RETRY TIME EXCEEDED - ") .  $errmsg);
-            $w->flagDone($ev, '');
-            
             if ($res->userinfo['smtpcode'] == 550) {
-                $this->server->checkSmtpResponse($errmsg, $core_domain);
+                if ($this->server->checkSmtpResponse($errmsg, $core_domain)) {
+                    $ev = $this->addEvent('NOTIFY', $w, 'BLACKLISTED  - ' . $errmsg);
+                    $this->server->updateNotifyToNextServer($w,  strtotime('NOW + ' . $retry . ' MINUTES'),true);
+                    $this->errorHandler( $ev->remarks);
+                }
             }
-            
-
+             
+            $ev = $this->addEvent('NOTIFYFAIL', $w, ($fail ? "FAILED - " : "RETRY TIME EXCEEDED - ") .  $errmsg);
+            $w->flagDone($ev, '');
+             
             $this->errorHandler( $ev->remarks);
         }
         
@@ -531,7 +540,7 @@ class Pman_Core_NotifySend extends Pman
         
         // try again.
         
-        $ev = $this->addEvent('NOTIFY', $w, 'NO HOST CAN BE CONTACTED:' . $p->email);
+        $ev = $this->addEvent('NOTIFY', $w, 'GREYLIST - NO HOST CAN BE CONTACTED:' . $p->email);
         
         $this->server->updateNotifyToNextServer($w,  strtotime('NOW + ' . $retry . ' MINUTES'),true);