我应该发送数千封电子邮件来回应特定事件,因此电子邮件发送不是手动的,而是自动的。
我的网站所在的服务器每小时都有电子邮件发送限制(每小时大约500封),所以我需要对其进行分区。
是否有一些插件具有该功能?或者一些PHP库可以帮助我做到这一点?
谢谢
我应该发送数千封电子邮件来回应特定事件,因此电子邮件发送不是手动的,而是自动的。
我的网站所在的服务器每小时都有电子邮件发送限制(每小时大约500封),所以我需要对其进行分区。
是否有一些插件具有该功能?或者一些PHP库可以帮助我做到这一点?
谢谢
我不认为使用sleep()
这是一个好主意,因为它在睡眠时会占用资源,并且可能会遇到脚本超时问题。
我也不认为从web服务器发送任何重要的或批量的电子邮件是一个好主意,因为这并不是它的设计目的。从standard发送的消息mail() / wp_mail()
与真正的MTA发送的功能相比,功能更有可能被标记为垃圾邮件;当消息反弹时,你不会得到任何通知;主人可能会因为你超出了一些任意的限制,或者因为他们认为你在发垃圾邮件,而很有可能他们甚至不会让你知道他们在发垃圾邮件;等
我认为最好的方法是使用一种专门用来发送大量电子邮件的服务,比如MailChimp。它将更加可靠和高效。您可以使用以下插件Import Users to MailChimp 将您的WP用户帐户与活动成员同步。还有一些插件,如MailChimp STS 通过MailChimp中继WP生成的消息。您可能需要搜索插件库以准确找到所需的内容,但有许多与MailChimp相关的插件可用。
如果您坚持从web服务器发送消息,那么至少应该使用以下库SwiftMailer 而不是wp_mail()
. 它尽最大努力减少邮件被错误标记为垃圾邮件的可能性,并具有高级的批量发送系统。
您将需要以下类似的内容(可能是工作示例代码),使用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\' );
}
}
链接:wp_mail();
sleep();
usleep();
// 替换为sleep();
我通常通过FTP下载和安装插件,但我已经从web界面安装了一些插件。我正在尝试将WP从远程移动到本地,我得到一个空白的WP管理屏幕。我认为是我的一个插件导致了这个问题。我已将wp-content/plugins重命名为wp-content/u-plugins,以禁用该文件夹中的所有插件。但我安装的插件没有出现在插件文件夹中,我认为这是导致wp管理屏幕空白的原因。请告知。谢谢