小编eva*_*van的帖子

Office 365 上使用应用程序密码进行 SMTP 身份验证是否需要连接器?

我们最近在我们的帐户上启用了 MFA,该功能会向员工/客户发送自动电子邮件,因此显然我们需要一种新的方法来验证该流程。OAuth 似乎有点大材小用,所以我选择了“应用程序密码”路线,我已经通过 Gmail 等服务无缝地完成了这一过程。

但这不起作用...我收到以下错误:

smtplib.SMTPAuthenticationError: (535, b'5.7.139 身份验证失败,请求不符合成功身份验证的条件。请联系您的管理员。[CH0PR03CA0182.namprd03.prod.outlook.com]')

请注意,SMTP 身份验证已打开,并且我使用的是 STARTTLS 1.2。我见过人们传递如下参数:

SMTPSecure: 'tls'
SMTPAuth: true;
Run Code Online (Sandbox Code Playgroud)

...但我不知道是否需要这样做,因为在 MFA 切换之前它运行良好。我也不知道如何使用 smtplib 发送这些内容

有人有建议吗?有人告诉我我可能需要 SMTP 连接器?这也似乎是一个过于复杂的过程,并且在任何指导用户设置应用程序密码的微软文章中都没有提到。我的代码如下,fwiw。自从启用 MFA 以来,我没有更改任何内容:

def send_mail(recipients: str, subject: str, body: str, attachments: list = None, cc: str = None):
    credentials = get_credentials()
    smtp_srv_name = "smtp.office365.com"
    smtp_server = smtplib.SMTP(smtp_srv_name, 587)
    msg = MIMEMultipart()
    msg['Subject'] = subject
    msg['From'] = 'xxxxxxxxxxxxx'
    msg['To'] = recipients
    msg['Cc'] = cc
    msg.attach(MIMEText(body, 'plain'))
    if attachments is not None:
        for attachment in attachments:
            with …
Run Code Online (Sandbox Code Playgroud)

python smtplib office365

1
推荐指数
1
解决办法
7562
查看次数

标签 统计

office365 ×1

python ×1

smtplib ×1