python smtplib - 非阻塞邮件发送
我正在使用smtplib发送邮件,频率还挺高的。我用自己的SMTP服务器作为中转。问题是每次我调用smtplib.SMTP(...)时,整个过程都会被阻塞。我刚接触Python(3版),想知道smtplib是否已经支持异步发送邮件。我还尝试把阻塞的工作交给像sendmail这样的邮件传输代理,然后在Python代码中发起独立的进程,这样就不会影响整体流程。我不太确定这样做是否合适。对于我的情况,有什么好的解决方案吗?
1 个回答
1
你可以使用消息队列来实现这个功能(比如说Rabbit MQ)。
简单来说,不是直接发送邮件,而是把邮件信息放到一个队列里。把信息放进队列后,系统会立刻返回,不会让你等。
然后,在后台有个程序在不停地处理这个队列,把邮件一个个发送出去。
想了解更多,可以查看这里:http://www.rabbitmq.com/