拿这个代码
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。我编写了这个测试,因为我在其他'thread'脚本中遇到了同样的问题,所以想确保它与线程无关。
答案 0 :(得分:3)
我猜测s.quit()
连接后s
已经死了,不能用于其他任何事情。如果是这样,您需要另一个s = smtplib.SMTP()
进行第二次邮件传输。
quit() documentation似乎表明情况如此:
终止SMTP会话并关闭连接。