我一直在使用 PHP 中的 sendmail 函数出口 4到目前为止,当我必须发送我的邮件列表时,我想知道是否有一个干净的解决方案。
我很确定 Facebook 不会在 foreach 循环中发送电子邮件通知。
我曾尝试使用循环的 Bash 脚本逐一发送它们,但速度很慢,并且会占用数据库资源。
我在网上找到了一些邮件列表管理器,我认为这是追踪电子邮件的最佳方式,例如
- Phplist 或
- OemPro 不免费,但看起来不错
如何使用 Zend 框架来实现这一点?(参考:“从 Zend Framework 应用程序向数百名收件人发送电子邮件的最佳方法是什么?“)
答案1
对于这些类型的邮件负载,您实际上有三个选择,其中只有一种是有意义的:
1) 编写自己的应用程序。对于我管理的邮件列表(电子商务网站和忠诚度计划的 optin 营销列表和新闻稿),我使用 perl Mail::Bulkmail 包作为相对简单的应用程序的核心,处理了大量 200K - 1M 封电子邮件。
2) 使用邮件列表管理器(如 listserv 或 mailman)来处理电子邮件和取消订阅。如果您能彻底了解软件包,这种方法会很有效。
3) 使用可以为您处理此事的服务。Lyris 不错,campaignmail 等 - 有很多信誉良好的提供商。
坦白说,您想使用外部服务。与主要提供商协商邮件白名单状态是一件非常麻烦的事。这些服务已经为您完成了这项工作,而且竞争激烈,如果您货比三家,价格非常合理。此外,它们还可以防止您公司的营销人员发送垃圾邮件 - 信誉良好的提供商对电子邮件来源非常严格,因为他们不想冒险被列入垃圾邮件发送者的黑名单。
答案2
你能通过更改特定脚本的超时时间,告诉 php 对列表进行 foreach 操作,并且不要超时。另一种方法是创建别名,一次性发送给整个射击比赛。
然而,我认为你应该使用像 mailman 这样的“真正的”管理工具,或者将其外包。
答案3
请记住,在大型邮件列表中,技术方面并不是唯一需要处理的问题。如果您发送大量电子邮件,而人们会认为这些电子邮件是垃圾邮件,那么您就会收到投诉,甚至被列入黑名单。(这就是僵尸网络如今在垃圾邮件发送者中很流行的原因之一 - 没有一个节点会明显地发送垃圾邮件。)
我建议你找一个有信誉的电子邮件服务,因为坦率地说,在我看来,你需要的帮助比在线获得的帮助要多。
答案4
就我个人而言,作为 PHP 级别的解决方案,我使用了 PEAR邮件::队列。这样,我就可以根据需要处理批量电子邮件。我运营一个网站,其中单个用户操作可以生成数百封电子邮件通知,并且在创建时发送它们会产生明显的延迟。 cron 作业根据需要发送它们,扩展以满足限制范围内的需求。它很好地满足了我的需求,也许它可以满足您的需求。 :)