获取此代码
import smtplib
s = smtplib.SMTP()
s.set_debuglevel(1)
print "-------------------------------------------------------------------------"
s.connect("smtp.gmail.com",587)
s.starttls()
s.login("USERNAME","PASSWORD")
s.quit()
print "========================================================================="
s.connect("smtp.gmail.com",587)
s.starttls()
s.login("USERNAME","PASSWORD")
s.quit()
print "-------------------------------------------------------------------------"
第一次连接时,一切正常...... 第二次它产生一个关于 TLS 的异常,如下所示......
Traceback (most recent call last):
File "mtest.py", line 12, in <module>
s.starttls()
File "/usr/lib/python2.7/smtplib.py", line 635, in starttls
raise SMTPException("STARTTLS extension not supported by server.")
smtplib.SMTPException: STARTTLS extension not supported by server.
我错过了一些愚蠢的东西还是有错误?
P.s.我编写此测试是因为我在其他“线程”脚本中遇到了同样的问题,因此想确保它与线程无关。
最佳答案
我猜测在 s.quit()
之后,连接 s
已失效并且无法用于其他任何用途。如果是这样,您需要另一个 s = smtplib.SMTP()
来进行第二次邮件传输。
quit() documentation似乎表明是这样的:
Terminate the SMTP session and close the connection.
关于python - smtplib 错误?第二次调用时 starttls/quit 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027006/