mail()用于向提供给foreach循环的阵列中的用户发送电子邮件。我想限制每小时发送的电子邮件数量。此外,我需要跟踪发送和未发送的电子邮件数量(可能使用AJAX)。
除了sleep()之外,我是否可以在发送每封电子邮件之间暂停?因为它会停止整个脚本,我将无法跟踪发送的电子邮件数量。
代码很简单:
foreach ($user_emails as $user_email) {
if(mail( $user_email, $subject, $model->message, $headers))
{
echo "sent </br>";
}
}
对好图书馆的建议也很棒!谢谢:))
答案 0 :(得分:0)
您可以将要发送的邮件放入数据库,然后执行cronjob / crontab打开一个PHP文件,该文件从数据库中读取并发送大量电子邮件。根据您的要求,可以将cronjob配置为每分钟,半小时,小时等运行。在负载方面,最好更频繁地运行cronjob并在每次执行时发送少量电子邮件,而不是经常运行cronjob并同时发送更多邮件。
当然,在运行该记录的邮件命令后,不要忘记从数据库中删除电子邮件记录(或将其标记为已发送),这样它就不会被发送两次。