我有一个包含 534 封注册电子邮件(时事通讯)的小型数据库。
我知道如何从我的数据库向所有电子邮件地址发送电子邮件,但问题在于页面托管的限制。我限制在 200 封电子邮件/小时,如果我强制发送到所有地址,我可能会被禁止。
一开始我使用循环发送( for() 和 foreach() ),我选择了所有电子邮件而不是使用 smtp 发送消息。
昨天我在查看我的通知时,我看到了来自网络托管公司的警告窗口,我可能会被禁止,因为我试图在不到 1 小时内发送超过 500 封电子邮件!
我该怎么办?
如果您使用 mail() (没有代码我无法判断)然后从 php.net 阅读...
笔记:
值得注意的是,mail() 函数不适合循环处理大量电子邮件。此函数为每封电子邮件打开和关闭一个 SMTP 套接字,效率不高。
如需发送大量电子邮件,请参阅 » PEAR::Mail 和 » PEAR::Mail_Queue 包。
梨在我的书中并不有趣。我倾向于同意这篇文章,比如SwiftMailer
您可以像这样在一个电话中发送多封电子邮件
CC = "emailaddress1@xxxx.com; emailaddress2@xxxxx.com"
.
BCC = "Firstemailaddress; secondemailaddress"
但它也有一个限度。
您可以每小时运行一次脚本,并在您的select
语句中更改limit
值以在您的范围内工作,您可以将这些值保存在数据库中并在完成后将其设置回 0,甚至可以在创建然后重置的简单文件中在所有电子邮件都已循环之后。
以下步骤会有所帮助。
完成上述脚本后,您所要做的就是设置一个可以每小时执行一次的 cronjob 并在其中调用您的 php 脚本。
希望这可以帮助。
我们为我们的 Web 应用程序使用外部电子邮件系统。我个人推荐SendGrid,它处理缩放并提供一些非常有用的分析(非常方便追踪坏地址)。