Notify.php
[Pman.Core] / NotifySend.php
index 959d58e..91bdc7e 100644 (file)
@@ -110,7 +110,9 @@ class Pman_Core_NotifySend extends Pman
         }
         
         $this->server = DB_DataObject::Factory('core_notify_server')->getCurrent($this);
-
+        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 +430,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....
@@ -484,7 +489,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,12 +520,19 @@ class Pman_Core_NotifySend extends Pman
                 $errmsg=  $res->userinfo['smtpcode'] . ':' . $res->userinfo['smtptext'];
             }
             
+            if ($res->userinfo['smtpcode'] == 550) {
+                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, '');
             
-            if ($res->userinfo['smtpcode'] == 550) {
-                $this->server->checkSmtpResponse($errmsg, $core_domain);
-            }
+            
             
 
             $this->errorHandler( $ev->remarks);