gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 21:29:46 27 4
gpt4 key购买 nike

我正在尝试使用 Office365 smtp 服务器自动发送电子邮件。我的代码以前适用于 gmail 服务器,但不适用于 Python 中使用 smtplib 的 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
知道为什么会这样吗?

最佳答案

smtplib ehlo 函数会自动将发件人主机名添加到 EHLO 命令中,但 Office365 要求域全部小写,因此当您默认主机名是大写时会出错。
您可以通过将 ehlo 命令中的发件人主机名显式设置为小写字母来修复。

import smtplib

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

server_365.ehlo('mylowercasehost')

server_365.starttls()

关于python - Office365 smtp 服务器不响应 python 中的 ehlo(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44763856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com