服务器不支持STARTTLS扩展
这可能是个重复的问题,但我还是遇到了麻烦,希望能找到解决办法。提前谢谢大家。
我正在尝试通过公司的服务器发送邮件。
我现在使用的是Python 2.6版本和Ubuntu 10.04系统。
这是我收到的错误信息:
Traceback (most recent call last):
File "hxmass-mail-edit.py", line 227, in <module>
server.starttls()
File "/usr/lib/python2.6/smtplib.py", line 611, in starttls
raise SMTPException("STARTTLS extension not supported by server.") smtplib.SMTPException: STARTTLS extension not supported by server.
下面是代码的一部分:
server = smtplib.SMTP('smtp.abc.com', 587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.ehlo()
server.login('sales@abc.com', 'abc123')
addressbook=sys.argv[1]
9 个回答
6
在调用 server.starttls()
之前去掉 server.ehlo()
让我代码正常运行了!谢谢你,Leonard!
我的代码:
s = smtplib.SMTP("smtp.gmail.com",587)
s.starttls()
s.ehlo
try:
s.login(gmail_user, gmail_psw)
except SMTPAuthenticationError:
print 'SMTPAuthenticationError'
s.sendmail(gmail_user, to, msg.as_string())
s.quit()
11
我之前也遇到过类似的问题,想通过公司的服务器发送邮件(不需要认证)
我解决这个问题的方法是去掉了 server.ehlo
这一行,并且去掉了端口号:
server = smtplib.SMTP("smtp.mycompany.com")
server.sendmail(fromaddr, toaddr, text)
14
在调用 starttls()
之前,先把 ehlo()
去掉。
如果你把 starttls()
和 ehlo()
一起用,就会发出两个“你好”的消息,这样服务器会把回复消息中的 STARTTLS
去掉。
server = smtplib.SMTP('smtp.abc.com', 587)
server.starttls()
server.ehlo()
server.login('sales@abc.com', 'abc123')