當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Email::getMessage方法代碼示例

本文整理匯總了PHP中Cake\Network\Email\Email::getMessage方法的典型用法代碼示例。如果您正苦於以下問題:PHP Email::getMessage方法的具體用法?PHP Email::getMessage怎麽用?PHP Email::getMessage使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Cake\Network\Email\Email的用法示例。


在下文中一共展示了Email::getMessage方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: process

 /**
  * Looks through the database and sends all the emails that need to be sent
  *
  * Emails are built by combining all the configuration settings from the plugin config file and the settings in the email table itself
  * See the hash::merge line for the order in which the configuration settings are implemented
  *
  * Once sent, emails will either be removed or marked 'sent' based on the master configuration setting `deleteAfterSend`
  *
  * @return array of results from each email send
  */
 public function process(array $options = [])
 {
     $result = [];
     # find all the emails we need to send
     $emails = $this->EmailQueues->find();
     # apply filters if set
     if (isset($options['limit'])) {
         $emails->limit($options['limit']);
     }
     if (isset($options['type'])) {
         $emails->where(['EmailQueues.type' => $options['type']]);
     }
     if (isset($options['status'])) {
         $emails->where(['EmailQueues.status' => $options['status']]);
     }
     if (isset($options['id'])) {
         $emails->where(['EmailQueues.id' => $options['id']]);
     }
     # build and send each email
     foreach ($emails as $email) {
         $config = $this->_getConfig($email);
         $profile = $this->_buildProfile($config, $email);
         $e = new Email($profile);
         # attempt to send the email
         try {
             # try and catch errors during transmission
             set_error_handler(function ($errno, $errstr, $errfile, $errline) {
                 throw new \ErrorException($errstr, $errno, 0, $errfile, $errline);
             });
             # now that the email is built, send it
             $e->send();
             $email->status = self::STATUS_SENT;
             $email->sent_on = date('Y-m-d H:i:s');
             restore_error_handler();
         } catch (\Exception $e) {
             Log::error($e->getMessage());
             $email->status = self::STATUS_ERROR;
             $email->error = $e->getMessage();
         }
         # log it - include as much relevant data as possible
         $e = $e->jsonSerialize();
         $log = $this->EmailLogs->newEntity(['email_id' => $email->id, 'email_type' => $email->type, 'email_data' => ['email' => $e, 'config' => $config, 'profile' => $email->toArray()], 'sent_to' => $e['_to'], 'sent_from' => $e['_from'], 'sent_on' => $email->sent_on ?: null, 'processed_on' => new \DateTime(), 'status' => $email->status, 'status_message' => $email->error]);
         $this->EmailLogs->save($log);
         # either delete or update the email depending on Configure::read(EmailQueue.master.deleteAfterSend)
         if ($config['deleteAfterSend'] && $email->status === self::STATUS_SENT) {
             $this->EmailQueues->delete($email);
         } else {
             $this->EmailQueues->save($email);
         }
         $result[] = $email;
     }
     # return the results from each email
     return $result;
 }
開發者ID:cwbit,項目名稱:cakephp-emailqueue,代碼行數:64,代碼來源:EmailQueueManager.php


注:本文中的Cake\Network\Email\Email::getMessage方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。