wp_mail打破循环

时间:2013-08-12 14:27:00

标签: php wordpress smtp

我需要向每位约200位用户发送包含更新网站内容的每日电子邮件。我设置它的方式是每20个用户发送一封电子邮件(所有BCC),因此只发送大约10封电子邮件。我正在使用Wordpress wp_mail()函数与WP-Mail-SMTP插件一起发送,以便使用预先配置的gmail帐户发送电子邮件。大约一个星期前一切正常。现在,在发送5封电子邮件后,剧本突然中断了。

//SEND THE EMAIL TO 20 USERS AT A TIME
    foreach ($users as $user) {
        array_push($mailgroup, $user->user_email);
        if(count($mailgroup) == 20) {
            $headers = $headersBase . 'Bcc: '. implode(',', $mailgroup);
            wp_mail('', 'Email Update', $strBody, $headers);
            $sentEmailCount++;
            $headers = '';
            $mailgroup = array();
        }
        $sentUserCount++;
    }

我认为原因是发送的最终消息中的电子邮件地址被反弹,然后无论出于什么原因循环停止。有没有办法忽视任何错误,只是继续循环,无论电子邮件是否反弹?

1 个答案:

答案 0 :(得分:1)

这最终成为gmail为外发电子邮件设置的配额问题。我使用的插件将wp_mail()函数设置为使用SMTP帐户来发送邮件。就我而言,我使用的是Gmail帐户。看起来好像gmail不允许在一段时间内发送超过100个外发消息。我在每封电子邮件中每20个用户(所有用户都是bcc'd)发送1封电子邮件。在轰炸之前,我只通过电子邮件循环5次(100个用户)。该死的gmail。

我的修复是设置一个Mandrill.com帐户(免费),安装Mandrill Wordpress插件(免费),配置它,就是这样。现在我的wp_mail()函数使用Mandrill发送消息,似乎没有限制。不需要修改我的脚本。