예제 #1
0
 /**
  * Sends the queued up messages to their destinations. This can either try
  * to send emails that couldn't be sent before (status = 'error'), or just
  * emails just recently queued (status = 'pending').
  *
  * @access  public
  * @param   string $status The status of the messages that need to be sent
  * @param   integer $limit The limit of emails that we should send at one time
  */
 function send($status, $limit)
 {
     // get list of emails to send
     $emails = Mail_Queue::_getList($status, $limit);
     // foreach email
     for ($i = 0; $i < count($emails); $i++) {
         $result = Mail_Queue::_sendEmail($emails[$i]['recipient'], $emails[$i]['headers'], $emails[$i]['body']);
         if (PEAR::isError($result)) {
             Mail_Queue::_saveLog($emails[$i]['id'], 'error', Mail_Queue::_getErrorMessage($result));
         } else {
             Mail_Queue::_saveLog($emails[$i]['id'], 'sent', '');
             if ($emails[$i]['save_copy']) {
                 // send a copy of this email to eventum_sent@
                 Mail_API::saveEmailInformation($emails[$i]);
             }
         }
     }
 }