HTML_FlexyFramework::get()->Core_Mailer['debug'] = true;
}
- $sent = (empty($w->sent) || preg_match('/^0000/', $w->sent)) ? false : true;
+ $sent = (empty($w->sent) || preg_match('/^1000/', $w->sent)) ? false : true;
if (!$force && (!empty($w->msgid) || $sent)) {
$ww = clone($w);
$this->errorHandler("message has been sent already.\n");
}
+ // we have a bug with msgid not getting filled.
+ $cev = DB_DataObject::Factory('Events');
+ $cev->on_table = $this->table;
+ $cev->on_id = $w->id;
+ $cev->whereAdd("action IN ('NOTIFYSENT', 'NOTIFYFAIL')");
+ $cev->limit(1);
+ if ($cev->count()) {
+ $cev->find(true);
+ $w->flagDone($cev, $cev->action == 'NOTIFYSENT' ? 'alreadysent' : '');
+ $this->errorHandler( $cev->action . " (fix old) ". $cev->remarks);
+ }
+
+
$o = $w->object();
if ($o === false) {
$this->errorHandler( $ev->remarks);
}
+ $retry_when = date('Y-m-d H:i:s', strtotime('NOW + ' . $retry . ' MINUTES'));
//$this->addEvent('NOTIFY', $w, 'GREYLISTED ' . $p->email . ' ' . $res->toString());
// we can only update act_when if it has not been sent already (only happens when running in force mode..)
// set act when if it's empty...
- $w->act_when = (!$w->act_when || $w->act_when == '0000-00-00 00:00:00') ? date('Y-m-d H:i:s', strtotime('NOW + ' . $retry . ' MINUTES')) : $w->act_when;
+ $w->act_when = (!$w->act_when || $w->act_when == '0000-00-00 00:00:00') ? $retry_when : $w->act_when;
$w->update($ww);
$ev->writeEventLog($this->debug_str);
- $w->flagDone($ev,$email['headers']['Message-Id']);
+ $w->flagDone($ev, $email['headers']['Message-Id']);
// enable cc in notify..
//print_r($res);
$ev = $this->addEvent('NOTIFY', $w, 'GREYLISTED - ' . $errmsg);
- $this->server->updateNotifyToNextServer($w, strtotime('NOW + ' . $retry . ' MINUTES'),true);
+ $this->server->updateNotifyToNextServer($w, $retry_when,true);
$this->errorHandler( $ev->remarks);
}
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->server->updateNotifyToNextServer($w, $retry_when,true);
$this->errorHandler( $ev->remarks);
}
}
$ev = $this->addEvent('NOTIFY', $w, 'GREYLIST - NO HOST CAN BE CONTACTED:' . $p->email);
- $this->server->updateNotifyToNextServer($w, strtotime('NOW + ' . $retry . ' MINUTES'),true);
+ $this->server->updateNotifyToNextServer($w, $retry_when ,true);