예제 #1
0
파일: Mail.php 프로젝트: anas/feedstore
 public function cron()
 {
     require '../../core/PEAR/Mail.php';
     require 'Mail/mime.php';
     $queue = MailQueue::getAllMailQueues(self::SEND_PER_CRON_JOB);
     $this->smarty->assign('site', 'http://192.168.6.109');
     foreach ($queue as $q) {
         $content = new MailSendOut($q->getSendOut());
         $user = new MailUser($q->getUser());
         $crlf = "\n";
         $hdrs = array('From' => $content->getFromName() . '<' . $content->getFromAddress() . '>', 'Subject' => $content->getSubject(), 'To' => $user->getFirstName() . ' ' . $user->getLastName() . '<' . $user->getEmail() . '>', 'Date' => date('r', strtotime($content->getTimestamp())));
         $this->smarty->assign('content', $content);
         $this->smarty->assign('user', $user);
         $body = $this->smarty->fetch('admin/shell.tpl');
         $mime = new Mail_mime($crlf);
         $mime->setHTMLBody($body);
         //do not ever try to call these lines in reverse order
         $body = $mime->get();
         $hdrs = $mime->headers($hdrs);
         $mail =& Mail::factory('sendmail');
         $mail->send($user->getEmail(), $hdrs, $body);
         $log = new MailDeliveryLog();
         $log->setUser($user->getId());
         $log->setSendOut($content->getId());
         $log->setQueue($q->getId());
         $log->save();
         $q->delete();
     }
 }