当 fail_silently=True 时 send_mail 中的异常

Exceptions in send_mail when fail_silently=True

我打算使用 send_mail 函数发送电子邮件,我希望使用 fail_silently=True 可以防止此函数引发异常。

事实证明,如果 SMTPException 被引发,它确实有效;但是我注意到它没有拦截 socket.error exception - 所以如果 STMP 服务器关闭,即使 fail_silently=True

也会引发异常

我现在想知道如何获取 send_mail 引发的异常的完整列表,以便我可以在 try/except 循环中捕获它们。有什么建议吗?

我想说 catch an Exception 是最后的方法。由于 SMTPExceptionsocket.error 都是 IOError 的子代,因此您可以改为捕获 IOError。如果您还钓到别的东西 - 您可以稍后将其添加到您的钓到清单中。