$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);
$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....
$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) {
$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);
$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);
}
// 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);