我正在努力寻找解决方案,以阻止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为每封电子邮件运行时,都会运行此代码。请帮我解决该问题。