1

我需要每天向大约 200 位用户发送一封包含更新网站内容的电子邮件。我设置的方式是向每 20 个用户发送一封电子邮件(全部密件抄送),因此总共只发送了大约 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++;
    }

我相信其原因是发送的最终消息中的电子邮件地址被退回,然后无论出于何种原因循环停止。有没有办法忽略任何错误并继续循环,而不管电子邮件是否退回?

4

1 回答 1

1

这最终成为了遇到 gmail 为外发电子邮件设置的配额的问题。我正在使用一个插件,该插件将 wp_mail() 函数设置为使用 SMTP 帐户来发送邮件。就我而言,我使用的是 gmail 帐户。看起来 gmail 似乎不允许在特定时间段内发送超过 100 条传出消息。我在每封电子邮件中向每 20 个用户(所有用户密件抄送)发送 1 封电子邮件。在它被炸毁之前,我只通过电子邮件循环 5 次(100 个用户)。该死的gmail。

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

于 2013-08-14T01:50:43.367 回答