/** * 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; }