python - smtplib 错误?第二次调用时 starttls/quit 失败

标签 python python-2.7

获取此代码

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/

相关文章:

windows - 如何使用 Python 在 Windows 防火墙中读取和添加规则

Python - 传递对象值而不是引用

python - 在 ubuntu 中导入 pyautogui 抛出 KEYERROR :DISPLAY

python - 尝试在 Python 2.7 中导入任何模块时,如何解决 "NameError: name ' null' 未定义”错误

c# - 如何在 C# 中检测图像中的对象?

python - python 2.7 的 mod_python

python - 如何在 BaseHttpServer 中设置多个 cookie?

python - 如何获取有关Python "the specified module could not be found"的更多详细信息

Python pandas 删除具有列值 "NaN"的重复行

python - 我怎样才能只解析/拆分每个元素中有多个冒号的列表?创建字典