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