2

拿这个代码

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.

我错过了什么愚蠢的东西还是有错误?

Ps 我写了这个测试,因为我在我的另一个“线程”脚本中遇到了同样的问题,所以想确保它与线程无关。

4

1 回答 1

3

我猜s.quit()在连接s失效后不能用于其他任何事情。如果是这样,您需要另一个s = smtplib.SMTP()用于第二次邮件传输。

quit() 文档似乎表明这是这样的:

终止 SMTP 会话并关闭连接。

于 2012-12-25T02:17:34.317 回答