O365 smtp 作为中继实现

O365 smtp as relay implementation

我正在使用以下代码行发送电子邮件,但收到错误消息“smtplib.SMTPAuthenticationError: (535, b'5.7.3 Authentication unsuccessful'。这一定是由于 MFA。什么我可以进行身份​​验证吗?

import smtplib, ssl

port = 587  # For starttls
smtp_server = "smtp.office365.com"
sender_email = "myemail@companycom"
receiver_email = "myemail@companycom"
password = input("Type your password and press enter:")
message = """\
Subject: Hi there

This message is sent from Python."""

context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
    server.ehlo()  # Can be omitted
    server.starttls(context=context)
    server.ehlo()  # Can be omitted
    server.login(sender_email, password)
    server.sendmail(sender_email, receiver_email, message)

此问题的解决方案是在您的帐户中管理应用密码或向您的管理员申请没有 MFA 的服务帐户。