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

Office365 smtp服务器不响应python中的ehlo(),python,smtp,office365,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无效域名[DM5PR13CA0034.namp

我正在尝试使用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无效域名[DM5PR13CA0034.namprd13.prod.outlook.com])

此外,.starttls()引发一个
SMTPException:starttls扩展不受服务器支持


知道为什么会这样吗

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

您可以通过在ehlo命令中将发送方主机名显式设置为任何小写字母来修复此问题

import smtplib

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

server_365.ehlo('mylowercasehost')

server_365.starttls()