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