当前位置: 首页>>代码示例>>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;未经允许,请勿转载。