我試圖通過Python發送電子郵件,但出現錯誤。Python不發送電子郵件:smtplib.SMTPException:服務器不支持STARTTLS擴展
這是我的代碼:
import smtplib
content = 'example bla bla'
mail = smtplib.SMTP('localhost')
mail.ehlo()
mail.starttls()
mail.login('[email protected]','password')
mail.sendmail('[email protected]','[email protected]',content)
mail.close()
當我運行該文件,這個錯誤顯示出來:
Traceback (most recent call last):
File "SendEmail.py", line 11, in <module>
mail.starttls()
File "/usr/lib/python2.7/smtplib.py", line 637, in starttls
raise SMTPException("STARTTLS extension not supported by server.")
smtplib.SMTPException: STARTTLS extension not supported by server.
大約有其他人有相同問題的職位,但通常只是順序的命令是錯誤的(如this one),顯然我的是正確的。
如果我將mail = smtplib.SMTP('localhost')
更改爲mail = smtplib.SMTP('smtp.gmail.com', 587)
它很好。這讓我覺得問題可能出在「本地主機」的配置上,但如果我在瀏覽器中打開http://localhost
,則會顯示「It works」頁面,所以我認爲本地主機配置良好。
有誰知道哪裏可以解決問題?
在電子郵件中打開'http:// localhost'並不意味着太多,因爲它使用'http',而電子郵件使用'smtp'。所以,不,本地主機可能配置不正確,問題是不支持'STARTTLS'。 –
恩,謝謝你的回答。我將嘗試配置smtp。 – undisp