SendMailJobController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2017/11/23/023
  6. * Time: 14:26
  7. */
  8. namespace console\controllers;
  9. use backend\helpers\MailHelper;
  10. use backend\models\Config;
  11. use backend\models\MailRecord;
  12. class SendMailJobController extends BaseJobController
  13. {
  14. public function actionRun()
  15. {
  16. date_default_timezone_set('Asia/Shanghai');
  17. $this->outLog("Job start " . date('Y-m-d H:i:s'));
  18. $cacheRun = $this->redis->get('SendMailJob');
  19. if (!$cacheRun) {
  20. $this->outLog("Auto send email,".date('Y-m-d H:i:s'));
  21. $config = Config::find()->asArray()->limit(1)->one();
  22. // 开始
  23. $this->redis->set('SendMailJob', true);
  24. $list = MailRecord::find()->where(['status' => 0])->limit(100)->asArray()->all();
  25. if (!empty($list)) {
  26. foreach ($list as $item) {
  27. MailHelper::sendButNotSaveRecord($item['subject'], $item['receiver'], $config['smtp_from_mail'], $item['content']);
  28. $this->outLog('Auto send email end,'.date('Y-m-d H:i:s'));
  29. $model = MailRecord::findOne(['id' => $item['id']]);
  30. $model->status = 1;
  31. $model->save();
  32. }
  33. }
  34. $this->redis->set('SendMailJob', false);
  35. $this->outLog("Job end, " . date('Y-m-d H:i:s'));
  36. }
  37. }
  38. }