foreach循环中的mail()

时间:2014-06-19 10:17:26

标签: php email

mail()用于向提供给foreach循环的阵列中的用户发送电子邮件。我想限制每小时发送的电子邮件数量。此外,我需要跟踪发送和未发送的电子邮件数量(可能使用AJAX)。

除了sleep()之外,我是否可以在发送每封电子邮件之间暂停?因为它会停止整个脚本,我将无法跟踪发送的电子邮件数量。

代码很简单:

foreach ($user_emails as $user_email) {
    if(mail( $user_email, $subject, $model->message, $headers))
    {
        echo "sent </br>";

    }
} 

对好图书馆的建议也很棒!谢谢:))

1 个答案:

答案 0 :(得分:0)

您可以将要发送的邮件放入数据库,然后执行cronjob / crontab打开一个PHP文件,该文件从数据库中读取并发送大量电子邮件。根据您的要求,可以将cronjob配置为每分钟,半小时,小时等运行。在负载方面,最好更频繁地运行cronjob并在每次执行时发送少量电子邮件,而不是经常运行cronjob并同时发送更多邮件。

当然,在运行该记录的邮件命令后,不要忘记从数据库中删除电子邮件记录(或将其标记为已发送),这样它就不会被发送两次。