let*_*eto 3 python sockets smtp smtplib
我需要检查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
Run Code Online (Sandbox Code Playgroud)
希望这能奏效。
好吧,我还没有找到使用smtplib保持smtp连接打开的任何方法。
但是,如果要在不关闭连接的情况下重用连接(是的,打开连接需要花费2-3秒钟的时间),则可以先测试连接。为此,发出NOOP命令并测试状态==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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4131 次 |
| 最近记录: |