我需要检查 SMTP 服务器的超时,但我的套接字刚刚关闭。我究竟做错了什么?这是我的测试:
#!/usr/bin/python
import smtplib
import time
import datetime
import socket
socket.setdefaulttimeout(1800)
now = time.time()
server = smtplib.SMTP()
server.set_debuglevel(1)
server.connect('mx.foo.bar','25')
(code,resp) = server.docmd('NOOP')
then = time.time()
print then-now
希望这能起作用。
嗯,我还没有找到任何方法来使用 smtplib 保持 smtp 连接打开。
但是,如果您想在不关闭的情况下重用连接(是的,打开一个
连接需要时间(2-3秒),您可以先测试连接。
为此,请发出 NOOP 命令并测试 status == 250。如果不是,那么您
可以打开连接并发送您的邮件。您可以选择在完成之前不退出()连接。
import smtplib
def create_conn():
conn = smtplib.SMTP('smtp.gmail.com', 587)
...
return conn
def is_connected(conn):
try:
status = conn.noop()[0]
except: # smtplib.SMTPServerDisconnected
status = -1
return True if status == 250 else False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)