【发布时间】:2021-02-02 20:35:39
【问题描述】:
def send_mail(to, subject, body_text):
SERVER = "smtp.office365.com"
FROM = "myemail@mycompany.com"
# Prepare actual message
msg = EmailMessage()
msg.set_content(body_text, subtype='html')
msg['Subject'] = subject
msg['From'] = FROM
msg['To'] = to
# Send the mail
server = smtplib.SMTP(SERVER, 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login("myemail@mycompany.com", "password")
server.send_message(msg)
server.quit()
我有这个发送电子邮件的功能。这给了我错误-
smtplib.SMTPNotSupportedError: STARTTLS extension not supported by server.
我尝试在这里遵循一些答案 - STARTTLS extension not supported by server 并修改了我的代码以在 server.starttls() 之前删除 server.ehlo() 但这给出了这个错误 -
smtplib.SMTPHeloError: (501, b'5.5.4 Invalid domain name [SN2PR01CA0061.prod.exchangelabs.com]')
还尝试通过删除导致此错误的行 server.starttls() 来运行 -
smtplib.SMTPNotSupportedError: SMTP AUTH extension not supported by server.
send_email 功能一直运行良好,直到我将调制解调器从 Xfinity 标准租用调制解调器更改为商店购买的 Netgear Nighthawk C7000。我的互联网服务提供商是 Xfinity。我不知道这是否是一个问题,但我觉得我应该提一下,因为这是自从电子邮件发送停止工作以来唯一发生的变化。
【问题讨论】:
标签: python-3.x email smtp office365 smtplib