Example #1
0
 /**
  * Adds an email to the queue.
  * @param type $recipient Recipient's email address.
  * @param type $emailSubject Email subject.
  * @param type $emailText Email text.
  * @param type $headers Email headers.
  * @return boolean On success, returns true.
  */
 public static function addMail($recipient, $emailSubject, $emailText)
 {
     // Format email headers
     $emailFrom = "no-reply@" . Yii::app()->request->serverName;
     $headers = "From: {$emailFrom}\r\nReply-To: {$emailFrom}";
     // Create new email item
     $queueItem = new MailQueue();
     $queueItem->recipient = $recipient;
     $queueItem->email_subject = $emailSubject;
     $queueItem->email_body = $emailText;
     $queueItem->email_headers = $headers;
     $queueItem->create_time = time();
     $queueItem->status = self::STATUS_PENDING;
     // Save an item to queue
     if (!$queueItem->save()) {
         // Error
         $errors = $queueItem->getErrors();
         foreach ($errors as $fieldName => $fieldErrors) {
             foreach ($fieldErrors as $error) {
                 Yii::log('Error adding email to queue: ' . $error, 'error');
             }
         }
         return false;
     }
     // OK
     return true;
 }
Example #2
0
 public function addMailQueue($message, $from_email, $from_name, $to_email, $subject)
 {
     $queue = new MailQueue();
     $queue->from_email = $from_email;
     $queue->from_name = $from_name;
     $queue->to_email = $to_email;
     $queue->subject = $subject;
     $queue->message = $message;
     $queue->date_published = time();
     $queue->attempts = 0;
     $queue->max_attempts = 5;
     $queue->success = 0;
     if ($queue->save(FALSE)) {
         return TRUE;
     }
     return FALSE;
 }
    public function sendIssue($issue, $to, $message)
    {
        $routing = sfContext::getInstance()->getRouting();
        $issue_url = $routing->generate('issues_show', $issue, true);
        $mail = new MailQueue();
        $mail->setSubject("Amaranto issue #{$issue->id}: {$issue->title}");
        $mail->addTo($to);
        $mail->setBody(<<<EOF
{$message}:

Id: {$issue->id}
Title: {$issue->title}
Project: {$issue->Project}
Priority: {$issue->Priority}
Opened by: {$issue->OpenedBy}

You can see this issue at: {$issue_url}

EOF
);
        $mail->save();
    }
Example #4
0
 public function queueUsers($sendout)
 {
     foreach ($this->getListUsers() as $user) {
         $itm = new MailQueue();
         $itm->setUser($user->getId());
         $itm->setSendOut($sendout->getId());
         $itm->save();
     }
 }