我有一个拥有100万+会员的大型主板,我在向每个会员发送电子邮件之间遇到了很大的延迟。按照目前的速度,我花了3个月的时间向所有100万会员发送电子邮件。
我的机器(专用):
我尝试过多种方式配置它仍然很慢。
决议是在当地完成的,所以我不认为这是问题所在。有什么建议吗?
vBulletin显示它发送电子邮件(一次500个),所以我知道脚本没有超时或内存问题。要完成500页,需要10分钟。我正在使用PHP的mail()
函数,这是除SMTP之外的唯一其他选项。以前的服务器我没有自己配置,它一直很快。现在用sendmail
(PHP的邮件功能)来尝试它是如此之慢。
答案 0 :(得分:4)
检查您的/etc/hosts
文件。
如果您的外部IP地址条目指向您的本地主机名,例如:
75.23.123.21 my-server-hostname
将其更改为:
127.0.0.1 my-server-hostname
然后再次尝试运行PHP mail()
函数。
答案 1 :(得分:2)
我要说的是,如果你有100万订阅者需要达到,也许你最好不做自己。相反,为什么不使用像Mailchimp这样的服务,主要关注的是发送电子邮件。
考虑优势:
您不必担心带宽,基础设施和维护问题。
您可以全面分析您的电子邮件广告系列的效果以及列表的健康状况 - 您说您有一百万封电子邮件,但有多少邮件会反弹?打开了多少?什么是每个国家的开放率?,有多少被标记为垃圾邮件等?
根据您的业务,您可以对广告系列进行A / B测试并优化读取/点击/转化。
您显然需要为此服务支付额外费用,这与您当前的托管费用是分开的,但使用Mailchimp,您需要支付所使用的费用。此外,如果你可以达到一百万人,你可能想出如何货币化(如果没有,你真的应该)。因此,使用第三方服务可能会收回成本。
Mailchimp是众多服务中的一种(我提到它是因为我使用它并且非常满意)。您可能需要查看SendGrid,Campaign Monitor和Aweber并权衡利弊。
可能不是你期待的答案,但这只是我的0.02美元。
P.S:Mailchimp还为您提供了API,因此您可以将您的应用与其服务无缝集成。
答案 2 :(得分:2)
值得注意的是,mail()函数不适合循环中的大量电子邮件。此功能打开和关闭每个电子邮件的SMTP套接字,效率不高。
要发送大量电子邮件,请参阅» PEAR::Mail和» PEAR::Mail_Queue个包。
答案 3 :(得分:1)
我远不是专家,但mail()函数比普通的Web函数使用更多的CPU和内存,但是有100万用户可能已经在您的服务器上有很大的负载(CPU和IO)。这可能会影响发送电子邮件的速度,特别是如果您使用的是旧的Xeon。
据我所知,双四核Xeon是相对较新的,发送这些电子邮件的时间不应该接近任何地方。
据我所知,低端单CPU专用服务器应该能够每分钟发送大约500-700封电子邮件......但这是一个专门用于发送电子邮件的系统。在中档服务器上,比如我怀疑你,我希望它可以在几个小时而不是几个月内发送电子邮件。
这可能是一个配置或负载问题,可能在许多不同的层面上。