),
'send-to' => array(
'desc' => 'Send the message to this address, rather than the one listed.',
+ 'default' => '',
'short' => 't',
'min' => 0,
'max' => 1,
//DB_DataObject::debugLevel(1);
//date_default_timezone_set('UTC');
// phpinfo();exit;
- $force = $opts['force'];
+ $force = empty($opts['force']) ? 0 : 1;
$w = DB_DataObject::factory($this->table);
// find last event..
$ev = DB_DataObject::factory('Events');
$ev->on_id = $w->id; // int(11)
- $ev->od_table = $this->table;
+ $ev->on_table = $this->table;
$ev->limit(1);
$ev->orderBy('event_when DESC');
$ar = $ev->fetchAll('event_when');
}
$next_try = $next_try_min . ' MINUTES';
- $email = $this->makeEmail($o, $p, $last, $ev);
+ $email = $this->makeEmail($o, $p, $last, $w);
+
+ if ($email === false || isset($email['error'])) {
+ // object returned 'false' - it does not know how to send it..
+ $ev = $this->addEvent('NOTIFY', $w, isset($email['error']) ?
+ $email['error'] : "INTERNAL ERROR - We can not handle " . $w->ontable);;
+ $ww = clone($w);
+ $w->sent = date('Y-m-d H:i:s');
+ $w->msgid = '';
+ $w->event_id = $ev->id;
+ $w->update($ww);
+ die(date('Y-m-d h:i:s ') .
+ (isset($email['error']) ?
+ $email['error'] : "INTERNAL ERROR - We can not handle " . $w->ontable)
+ ."\n");
+ }
+
die(date('Y-m-d h:i:s') . " - SENT\n");
}
// what type of error..
- list($code, $response) = $mailer->_smtp->getResponse();
+ $code = empty($res->userinfo['smtpcode']) ? -1 : $res->userinfo['smtpcode'];
if ($code < 0) {
continue; // try next mx... ??? should we wait??? - nope we did not even connect..
}
// give up after 2 days..
- if ($code == 421 && $next_try_min < (2*24*60)) {
+ if (in_array($code, array( 421, 451, 452)) && $next_try_min < (2*24*60)) {
// try again later..
// check last event for this item..
- $this->addEvent('NOTIFY', $w, 'GREYLISTED\n');
+ $this->addEvent('NOTIFY', $w, 'GREYLISTED ' . $p->email . ' ' . $res->toString());
$w->act_when = date('Y-m-d H:i:s', strtotime('NOW + 5 MINUTES'));
$w->update($ww);
die(date('Y-m-d h:i:s') . " - GREYLISTED\n");
}
if ($fail || $next_try_min > (2*24*60)) {
// fail.. = log and give up..
- $id = $this->addEvent('NOTIFY', $w, 'FAILED - '. ($fail ? $res->toString() : "RETRY TIME EXCEEDED"));
+ $ev = $this->addEvent('NOTIFY', $w, "RETRY TIME EXCEEDED - ".
+ $p->email . ' ' .
+ ($fail ? ($res->userinfo['smtpcode'] . ' : ' .$res->toString()) : " - UNKNOWN ERROR"));
$w->sent = date('Y-m-d H:i:s');
$w->msgid = '';
- $w->event_id = $id;
+ $w->event_id = $ev->id;
$w->update($ww);
die(date('Y-m-d h:i:s') . ' - FAILED - '. ($fail ? $res->toString() : "RETRY TIME EXCEEDED\n"));
}
- $this->addEvent('NOTIFY', $w, 'NO HOST CAN BE CONTACTED');
+ $this->addEvent('NOTIFY', $w, 'NO HOST CAN BE CONTACTED:' . $p->email);
$w->act_when = date('Y-m-d H:i:s', strtotime('NOW + 5 MINUTES'));
$w->update($ww);
die(date('Y-m-d h:i:s') ." - NO HOST AVAILABLE\n");
**/
function makeEmail($o, $p, $last, $notify)
{
- return $o->toEmail($p,$last);
+ return $o->toEmail($p,$last, $notify);
}
function debug($str)