【发布时间】:2015-07-25 01:25:40
【问题描述】:
我正在尝试通过 Python 发送电子邮件,但出现错误。
这是我的代码:
import smtplib
content = 'example bla bla'
mail = smtplib.SMTP('localhost')
mail.ehlo()
mail.starttls()
mail.login('from@example.com','password')
mail.sendmail('from@example.com','to@example.com',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) 效果很好。这让我认为问题可能出在“localhost”的配置中,但如果我在浏览器中打开http://localhost,则会显示“It works”页面,所以我认为 localhost 配置良好。
有谁知道问题出在哪里?
【问题讨论】:
-
打开
http://localhost在电子邮件上下文中没有多大意义,因为它使用http而电子邮件使用smtp。所以,不,本地主机可能没有正确配置,问题是不支持STARTTLS。 -
嗯,谢谢你的回答。我会尝试配置 smtp。