How to bulk send emails

时间:2011-09-11 作者:pAkY88

我应该发送数千封电子邮件来回应特定事件,因此电子邮件发送不是手动的,而是自动的。

我的网站所在的服务器每小时都有电子邮件发送限制(每小时大约500封),所以我需要对其进行分区。

是否有一些插件具有该功能?或者一些PHP库可以帮助我做到这一点?

谢谢

2 个回复
SO网友:Ian Dunn

我不认为使用sleep() 这是一个好主意,因为它在睡眠时会占用资源,并且可能会遇到脚本超时问题。

我也不认为从web服务器发送任何重要的或批量的电子邮件是一个好主意,因为这并不是它的设计目的。从standard发送的消息mail() / wp_mail() 与真正的MTA发送的功能相比,功能更有可能被标记为垃圾邮件;当消息反弹时,你不会得到任何通知;主人可能会因为你超出了一些任意的限制,或者因为他们认为你在发垃圾邮件,而很有可能他们甚至不会让你知道他们在发垃圾邮件;等

我认为最好的方法是使用一种专门用来发送大量电子邮件的服务,比如MailChimp。它将更加可靠和高效。您可以使用以下插件Import Users to MailChimp 将您的WP用户帐户与活动成员同步。还有一些插件,如MailChimp STS 通过MailChimp中继WP生成的消息。您可能需要搜索插件库以准确找到所需的内容,但有许多与MailChimp相关的插件可用。

如果您坚持从web服务器发送消息,那么至少应该使用以下库SwiftMailer 而不是wp_mail(). 它尽最大努力减少邮件被错误标记为垃圾邮件的可能性,并具有高级的批量发送系统。

SO网友:kaiser

您将需要以下类似的内容(可能是工作示例代码),使用get_users();:

$users = get_users( /* Add your args here */ );
foreach ( $users as $user )
{
    $user_email_addresses[] = $user->email; // receive array of user mail addresses here
}

function wpse28212_send_delayed_bulkmail( $email_addresses )
{
    $i = 0;
    foreach ( $user_email_addresses as $email_addy )
    {
        ++$i; // count users up

        $delay = 0; // in miliseconds (ms)

        if ( $i >= 500 )
        {
            $delay = 3600000; // 1 hour
        }
        sleep( $delay );

        wp_mail( $email_addy, \'subject\', \'message\' );
    }
}
链接:

结束

相关推荐

Where are plugins located

我通常通过FTP下载和安装插件,但我已经从web界面安装了一些插件。我正在尝试将WP从远程移动到本地,我得到一个空白的WP管理屏幕。我认为是我的一个插件导致了这个问题。我已将wp-content/plugins重命名为wp-content/u-plugins,以禁用该文件夹中的所有插件。但我安装的插件没有出现在插件文件夹中,我认为这是导致wp管理屏幕空白的原因。请告知。谢谢