我正在为我的php应用程序开发电子邮件队列模块。所以所有电子邮件(用户通知,密码提醒......)都将被放入队列中,并将根据电子邮件的优先级由cron进程发送。但我很快就会有新闻通讯模块。所以我的问题是要么将简讯保留在单独的队列中,要么可以使用集中式队列,因为我对所有电子邮件都有优先级属性?
感谢。
答案 0 :(得分:7)
提醒:您是否有构建电子邮件发件人的经验?这是一个毛茸茸的冒险,你几乎总是更好地外包任务。电子邮件的可传递性并不容易或无法预测。
您可以坚持使用一个队列,但一定要能够指定可以从哪个IP地址发送特定电子邮件。您需要使用不同的IP地址来发送简报,注册,发票等。更进一步,您需要一个IP来将简报发送到可信地址和不受信任的地址。
答案 1 :(得分:2)
如果您可以使用相同的模块进行操作,我认为这样做更好,因为需要担心的代码较少。
我能看到的唯一潜在问题是两种电子邮件类型的不同性质。用户通知和密码提醒往往会有一个收件人。通讯将立即通过电子邮件发送给所有用户。
如果这不会导致问题(而且你看不到任何其他问题),我会坚持使用单邮件到规则的方法。
答案 2 :(得分:1)
如Gary Richardson所述,电子邮件的可传递性可能很棘手。
这不是广告。但我强烈推荐PostMarkApp.com。除了作为付费客户之外,我与该公司没有任何关系(好吧,我公司支付)。
他们有一个邮件传递系统和一个可以从PHP脚本中使用的API。您只需将邮件提交到他们的队列中,他们就会发送和处理垃圾邮件报告,弹跳等等。他们的API可以让您知道哪些邮件被退回并处理它们。
此服务相当于CampaignMonitor用于原始电子邮件发送。顺便说一句,您无法通过PostMarkApp发送简报,他们只允许一对一的电子邮件(如您的用户通知和密码提醒)。
几年前,我开始构建自己的电子邮件发送脚本,直到托管公司提到每天最多有500封电子邮件。然后我使用了一个“时事通讯”传送系统,有一些hacky解决方案,使它做我想要的。这是一团糟。
直到最近,我们还使用了另一个定制的邮件发送脚本,但正如Gary Richardson所说,你需要考虑IP,弹跳等。我发现邮戳的东西如此令人兴奋(以一种令人讨厌的方式)令人尴尬的是:D
话虽如此,一旦您将实际的邮件递送外包,您可以使用您的优先级为您的系统设置一个邮件队列。通过这种方式,您的应用程序会将邮件添加到您自己的邮件队列中,并且您的邮件系统会将邮件传递到外包平台。在用户按下提交或类似信息后,尝试在页面刷新期间立即发送电子邮件是首选。
PS:如果有人知道任何类似邮戳的服务,请告诉我!
答案 3 :(得分:0)
让SendGrid看一看。在最近意识到处理电子邮件不值得开发时间之后,似乎对我们有用。