通过Cron选项卡PHP发送的每封电子邮件后清除邮件假脱机

时间:2018-11-29 20:22:40

标签: php yii2 cron sendmail swiftmailer

我正在努力寻找解决方案,以阻止crontab在每次通话后两次发送电子邮件。它会在每次通话中向任何用户随机发送两次电子邮件,特别是当我使用BCC或CC或尝试发送多封电子邮件时。我使用相同的Yii2 PHP。我的cron每5分钟运行一次,并从我的数据库中获取所有已记录的电子邮件,然后将其发送给用户,并将“ email_sent”标志设置为1。我怀疑将标志设置为这个重复项是否有问题?如果有人知道通过PHP从服务器清除或刷新后台打印队列的代码,请帮助我。我正在使用Amazon SES SMTP发送电子邮件。我无法发布完整的代码,但是我使用的sendmail函数如下:

$config = [
            'class' => 'yii\swiftmailer\Mailer',
            'useFileTransport' => false,
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => $host,
                'username' => $mail_from,
                'password' => $mail_pass,
                'port' => $port,
                'encryption' => $encryption,
            ],
        ];
        $yiiemail = Yii::createObject($config);
        $sendmail = $yiiemail->compose($text_body_style, ['content' => 
                    $body, 'theme' => $theme]);
        $sendmail->setFrom([EMAIL_FROM_ADDRESS =>EMAIL_FROM_NAME]);
        $sendmail->setTo($email);
        $sendmail->setSubject($subject);
        if(!empty($bcc)){ 
            $sendmail->setBcc($bcc);
        }
        return $sendmail->send();

每次cron为每封电子邮件运行时,都会运行此代码。请帮我解决该问题。

0 个答案:

没有答案