我尝试写小应用程序每天发送电子邮件我的服务器的状态,我使用smtplib,蝙蝠有一点问题,我不知道可以设置连接超时!即时尝试whit smtp.setdefaulttimeout(30)bat不行
def connect(host,user,password)
try:
smtp = smtplib.SMTP(host)
smtp.login(user, password)
code = smtp.ehlo()[0]
if not (200 <= code <= 299):
code = smtp.helo()[0]
except:
pass
Run Code Online (Sandbox Code Playgroud)
如何设置连接超时到此功能?谢谢
小智 6
从Python 2.6,您可以在SMTP库中设置超时(官方文档):
class smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])
Run Code Online (Sandbox Code Playgroud)
"如果未指定,将使用全局默认超时设置"
如果您使用旧版本的Python(<2.6),则需要设置套接字默认超时:
import socket
socket.setdefaulttimeout(120)
Run Code Online (Sandbox Code Playgroud)
对我来说工作得很好.