Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python smtplib设置超时_Python_Smtplib - Fatal编程技术网

python smtplib设置超时

python smtplib设置超时,python,smtplib,Python,Smtplib,我试着写一个小应用程序来发送电子邮件,每天都在我的服务器状态,我使用smtplib,bat有小问题,我不知道可以设置连接超时!im尝试使用smtp.setdefaulttimeout30 bat无法工作 def connect(host,user,password) try: smtp = smtplib.SMTP(host) smtp.login(user, password) code = smtp.ehlo()[0] if not

我试着写一个小应用程序来发送电子邮件,每天都在我的服务器状态,我使用smtplib,bat有小问题,我不知道可以设置连接超时!im尝试使用smtp.setdefaulttimeout30 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

如何设置此函数的连接超时?感谢使用Python 2.6,您可以在SMTP库中设置超时:

如果未指定,将使用全局默认超时设置

如果使用较旧版本的Python<2.6,则需要设置套接字默认超时:

import socket
socket.setdefaulttimeout(120)

对我来说,这很好。

在Python 2.6中,您可以在SMTP库中设置超时:

如果未指定,将使用全局默认超时设置

如果使用较旧版本的Python<2.6,则需要设置套接字默认超时:

import socket
socket.setdefaulttimeout(120)
对我来说,工作正常。

当smtplib在内部使用socket时,您可以在连接到主机之前使用socket.setdefaulttimeout:

def connect(host,user,password):
    try:
        socket.setdefaulttimeout(2 * 60)
        smtp = smtplib.SMTP(host)
        ...
虽然smtplib在内部使用套接字,但您可以在连接到主机之前使用socket.setdefaulttimeout:

def connect(host,user,password):
    try:
        socket.setdefaulttimeout(2 * 60)
        smtp = smtplib.SMTP(host)
        ...

Python 3.7有一个额外的超时参数,可以使用:


Python 2中不存在此参数。Python 3.7有一个额外的超时参数,可以使用:

Python 2中不存在此参数