3

当电子邮件发送失败时,我遇到了 smtplib 捆绑我的程序的问题,因为永远不会引发超时。我使用的服务器没有也永远不会有大于 2.4 的 python,所以我不能在更高版本的 python 中使用 SMTP 构造函数的 timeout 参数。

Python 2.4 的文档显示 SMTP 类没有“超时”参数:

class SMTP([host[, port[, local_hostname]]])

那么如何模拟这个功能呢?

4

1 回答 1

6
import socket
socket.setdefaulttimeout(120)

将在 2 分钟后使任何套接字超时,除非特定套接字的超时发生更改(并且我相信 Python 2.4 中的 SMTP 不会执行后者)。

编辑:显然根据 OP 的评论,这破坏了 TLS,所以,计划 B ......:

获取 2.6 的 smtplib 源文件并将其作为您自己的模块反向移植到 2.4 怎么样?不应该太难......并且确实支持超时!-)

这里...

于 2009-08-21T03:55:40.537 回答