python smtplib - 非阻塞邮件发送

2 投票
1 回答
2184 浏览
提问于 2025-04-17 06:20

我正在使用smtplib发送邮件,频率还挺高的。我用自己的SMTP服务器作为中转。问题是每次我调用smtplib.SMTP(...)时,整个过程都会被阻塞。我刚接触Python(3版),想知道smtplib是否已经支持异步发送邮件。我还尝试把阻塞的工作交给像sendmail这样的邮件传输代理,然后在Python代码中发起独立的进程,这样就不会影响整体流程。我不太确定这样做是否合适。对于我的情况,有什么好的解决方案吗?

1 个回答

1

你可以使用消息队列来实现这个功能(比如说Rabbit MQ)。

简单来说,不是直接发送邮件,而是把邮件信息放到一个队列里。把信息放进队列后,系统会立刻返回,不会让你等。

然后,在后台有个程序在不停地处理这个队列,把邮件一个个发送出去。

想了解更多,可以查看这里:http://www.rabbitmq.com/

撰写回答