注意:当我第一次阅读您的问题时,我以为它一次说了数十万封电子邮件。当我仔细检查时,我注意到它实际上说了数百到数千。我现在懒得改变我的帖子,所以这里有一些警告:根据我的经验,你可能可以在没有商业工具的情况下运行良好到大约40K。在大约10K时,您将需要遵循“最小”列表,以防止在开始达到更大的列表大小时出现重大痛苦。不过,我建议立即实现它。
我之前说过,发送电子邮件有两个方面:
- 技术方面 - 基本上所有RFC都围绕着smtp协议,电子邮件格式,DNS记录等。这有点复杂,但可以解决。
- 神奇的一面 - 电子邮件传递管理是巫毒教。你会感到沮丧,事情会无缘无故地破裂,你会考虑离开另一份不涉及电子邮件的工作。
我建议不要编写自己的批量发件人。我相信PHP可以做得很好,但你应该把时间花在其他地方。我过去使用过并推荐的两个产品是Strongmail和PowerMTA。请注意 - 它们的价格很高,但我几乎可以保证,从长远来看,您将花费更多资金来构建自己的解决方案。
在 PHP 中编写自己的一个领域是节流/tar 点蚀。邮件服务器将在您发送几条消息后开始增加睡眠(30)以减慢您的速度并阻止您发送垃圾邮件。
通常,这些商业批量发件人运行 SMTP 协议进行排队。您将继续使用Zend_Mail,但要对其进行硬编码以连接到服务器。它会以尽可能快的速度对邮件进行排队,然后使用它自己的引擎将邮件发送到目的地。
在100K列表中,您将不得不采用电子邮件最佳实践。您至少需要:
- SPF Records,也可能是DKIM
- 多个 IP 用于对流量进行分段 - 具有 3 个 IP,一个用于您信任的质量地址,一个用于中等风险 IP 地址,一个用于高风险 IP 地址。此设计有助于将邮件发送给最佳客户的风险降至最低。
- 用于发送 IP 地址的正确反向 DNS
- 使用来自AOL,hotmail,Yahoo和其他人的反馈循环来处理垃圾邮件投诉
- 取消订阅和退回邮件管理 -- 确保修剪这些地址
- 具有打开/点击跟踪也很重要 - 如果您是A列表中的客户没有打开您的电子邮件,则需要将其降级为B列表等。这很重要,因为ISP会将不活跃的帐户变成蜜罐。Hotmail因此而闻名。
最后,如果您真的认真对待发送电子邮件,则需要其他一些工具,例如返回路径。