我想开发一个邮件列表应用程序,该应用程序需要能够一次处理向50,000-100,000个订阅者发送消息。
Swiftmailer 的批量发送方法可以处理这个吗?在电子邮件/SMTP/邮件服务器方面,我是个笨蛋——在开发此应用程序时,我还需要记住哪些其他事项?
我想开发一个邮件列表应用程序,该应用程序需要能够一次处理向50,000-100,000个订阅者发送消息。
Swiftmailer 的批量发送方法可以处理这个吗?在电子邮件/SMTP/邮件服务器方面,我是个笨蛋——在开发此应用程序时,我还需要记住哪些其他事项?
在我的日子里,我写了一个或三个邮件应用程序。根本无法真正评论 swiftmailer,但要记住一些事情:
1) 这种规模的列表是长期运行的操作。运行时间如此之长,以至于它们根本不应该由 Web 进程处理,而应该作为某种批处理作业来处理。
2) 有时某事会搞砸并切断要发送的东西流。这意味着您的邮件应用程序应该能够 a)知道它在做什么,并且 b)能够在任何时候重新启动自己。
3)与#2相关——有很多仪器和记录这只小狗。您将需要能够弄清楚这个长期运行的批处理过程何时出错以及为什么会在某个时候出错。
因此,基本上,要关注的关键是使批处理作业位起作用。究竟是什么电子邮件发送引擎几乎是次要问题。
虽然我通常是 Swiftmailer 的忠实粉丝,但对于这么大的列表,我不一定会推荐它。我有一个网站已经使用 PEAR Mail和Mail_Queue发送了一年多的会员通知,没有任何问题。
本质上,消息排队等待传递(作为记录存储在 MySQL 数据库中),然后一个 cron 作业在整个晚上定期运行,以可管理的批次发送它们(使用 php CLI)。
(回答原始问题的第二部分,因为移到这里)至于跟踪: