Office365 smtp服务器不响应python中的ehlo()

时间:2017-06-26 16:01:45

标签: python smtp office365

我正在尝试使用Office365 smtp服务器自动发送电子邮件。我的代码以前使用gmail服务器,但不使用smtplib的Python中的Office365服务器。

我的代码:

import smtplib

server_365 = smtplib.SMTP('smtp.office365.com', '587')

server_365.ehlo()

server_365.starttls()

ehlo()的响应是:(501, '5.5.4 Invalid domain name [DM5PR13CA0034.namprd13.prod.outlook.com]')

此外,.starttls()会引发SMTPException: STARTTLS extension not supported by server

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

smtplib ehlo函数自动将发件人主机名添加到EHLO命令中,但是Office365要求域全部为小写,因此当您的默认主机名为大写时会出错。

您可以通过在ehlo命令中将发件人主机名显式设置为小写来解决此问题。

import smtplib

server_365 = smtplib.SMTP('smtp.office365.com', '587')

server_365.ehlo('mylowercasehost')

server_365.starttls()