public function sendmailqueueAction() { $mailModel = new MailModel(); $queue = $mailModel->getMailQueue(100); if (count($queue)) { foreach ($queue as $item) { $mailModel->sendMailItem($item); } } else { $logger = new LoggerModel("/var/log/mp/mail-tiny4cocoa.log"); $logger->log("empty"); } }
public function sendMailItem($queueItem) { $fromMail = "*****@*****.**"; $from = "noreply"; if ($queueItem['frommail'] != "") { $fromMail = $queueItem['frommail']; $from = $queueItem['frommail']; } if (preg_match('/(.*)?<(.*)?>/im', $fromMail, $match)) { $fromMail = $match[2]; $from = $match[1]; } $mailItem = array("toMail" => $queueItem['email'], "to" => $queueItem['email'], "fromMail" => $fromMail, "from" => $from, "msgHTML" => $queueItem['content'], "altBody" => $queueItem['content'], "subject" => $queueItem['subject']); $sql = ""; try { $this->begin($queueItem["server"]); if (!$this->send($mailItem)) { $errorInfo = $this->getErrorInfo(); } $logger = new LoggerModel("/var/log/mp/mail-tiny4cocoa.log"); $logger->log($queueItem["server"]); if (isset($errorInfo)) { $sql = "UPDATE mail_queue SET status = 2, errorMessage = '{$errorInfo}' WHERE id = " . $queueItem['id']; $logger->log($queueItem['id'] . ", fail, {$errorInfo}"); } else { $sql = "UPDATE mail_queue SET status = 1 WHERE id = " . $queueItem['id']; $logger->log($queueItem['id'] . ", success"); } $this->end(); } catch (Exception $e) { $errorInfo = $e->getMessage(); $sql = "UPDATE mail_queue SET status = 2, errorMessage = '{$errorInfo}' WHERE id = " . $queueItem['id']; } $this->run($sql); }