通过 google 的 SMTP 服务器发送电子邮件的最快方式?
Fastest way to send emails through google's SMTP servers?
我正在开发一个发送大量电子邮件(注册、忘记密码、交易等)的网站,目前我正在使用 PHPMailer 和 gmail 的 SMTP 发送它们。他们工作得很好,我从来没有丢失过电子邮件。
所以怎么了?
嗯,因为它必须登录到 SMTP,所以加载页面需要更长的时间。例如,当用户进行交易时,完成请求需要大约 900-1000 毫秒的时间。我认为像这样发送电子邮件是一个非常糟糕的主意。
怎么办?
我从来没有用这种方式发送邮件,所以我不知道哪个是最快的做法。
我想写一个 python 或 php cli 服务,它有一个队列,其中包含要发送的电子邮件。当必须发送电子邮件时,它会处理。
不确定这是否完美。有什么建议吗?
I believe that sending emails like this is a very bad idea.
你是对的。
Any suggestions?
发送邮件(或任何需要花费一些时间的过程)应该始终在后台完成,以便前端保持快速。
你有不同的方法来做到这一点:
- Insert/flag 数据库中的一些行,并有一个 cron 作业定期检查是否有这样的行要处理。如果延迟不是问题,这很容易实现并且效果很好。但是,如果您需要 运行 过于频繁地执行 cron,请转到下一个解决方案。
- 使用像 RabbitMQ 这样的第三方 queue/messaging 服务。设置时间有点长,但它是一个非常可靠和通用的架构:前端将您想要的任何任务发送到服务,服务负责排队并将它们分发给您的工作脚本。可用于发送电子邮件、调整图像大小、生成 PDF 等。任何需要时间的都可以在后台移动。
现在有另一种解决方案特别适用于电子邮件,如果您有一些系统管理技能:使用 SMTP 中继。
- 您的前端不是直接查询 Gmail SMTP(速度慢),而是在本地发送邮件(速度快),您的本地邮件服务器(例如 Postfix)将负责将邮件转发到 Gmail 的 SMTP。
我正在开发一个发送大量电子邮件(注册、忘记密码、交易等)的网站,目前我正在使用 PHPMailer 和 gmail 的 SMTP 发送它们。他们工作得很好,我从来没有丢失过电子邮件。
所以怎么了?
嗯,因为它必须登录到 SMTP,所以加载页面需要更长的时间。例如,当用户进行交易时,完成请求需要大约 900-1000 毫秒的时间。我认为像这样发送电子邮件是一个非常糟糕的主意。
怎么办?
我从来没有用这种方式发送邮件,所以我不知道哪个是最快的做法。
我想写一个 python 或 php cli 服务,它有一个队列,其中包含要发送的电子邮件。当必须发送电子邮件时,它会处理。
不确定这是否完美。有什么建议吗?
I believe that sending emails like this is a very bad idea.
你是对的。
Any suggestions?
发送邮件(或任何需要花费一些时间的过程)应该始终在后台完成,以便前端保持快速。
你有不同的方法来做到这一点:
- Insert/flag 数据库中的一些行,并有一个 cron 作业定期检查是否有这样的行要处理。如果延迟不是问题,这很容易实现并且效果很好。但是,如果您需要 运行 过于频繁地执行 cron,请转到下一个解决方案。
- 使用像 RabbitMQ 这样的第三方 queue/messaging 服务。设置时间有点长,但它是一个非常可靠和通用的架构:前端将您想要的任何任务发送到服务,服务负责排队并将它们分发给您的工作脚本。可用于发送电子邮件、调整图像大小、生成 PDF 等。任何需要时间的都可以在后台移动。
现在有另一种解决方案特别适用于电子邮件,如果您有一些系统管理技能:使用 SMTP 中继。
- 您的前端不是直接查询 Gmail SMTP(速度慢),而是在本地发送邮件(速度快),您的本地邮件服务器(例如 Postfix)将负责将邮件转发到 Gmail 的 SMTP。