在Python web应用中最佳的邮件调度方式是什么?
我有一个Pyramid的网页应用,需要发送一些邮件,比如注册确认邮件、新闻通讯等等。我知道怎么用Python里的smtplib发送邮件,并且我决定使用一个smtp服务(我觉得sendgrid可以满足需求)。
真正的问题是邮件的调度和延迟发送——比如,当用户注册时,邮件应该在表单提交后发送。但我不想让这个请求被阻塞,所以我想以一种不阻塞的方式“安排”邮件的发送。
除了自己实现这个功能(可能需要用到数据库和工作线程),有没有现成的解决方案可以处理邮件队列和调度呢?
谢谢!
3 个回答
0
你提到的现有解决方案是,在你的电脑上运行一个自己的SMTP服务器,这个服务器只绑定在本地,也就是只能自己用,其他机器无法连接。因为只有你一个人在用,所以发消息到这个服务器几乎是立刻就能完成的,服务器会处理消息的排队、重试等问题。如果你是在UNIX/Linux系统上,可能已经有这样的服务器安装好了。
0
在我的应用程序中,我把电子邮件插入到数据库表里。同时,我有一个Python脚本在定时任务下运行,它会检查这个表,并把已发送的邮件记录更新为“已发送”。