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 "-------------------------------------------------------------------------"

初めて接続すると、問題なく起動します.... 2回目は、ここに示すように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()は2回目のメール転送のために別のものが必要になるでしょう。

quit()のドキュメントは、これがそうであることを示唆しているようです。

SMTPセッションを終了し、接続を閉じます。

于 2012-12-25T02:17:34.317 に答える