为什么Office 365的SMTP身份验证对于一个域却失败,而对于另一个域却不失败?

时间:2020-09-01 14:18:50

标签: c# smtp mailkit smtp-auth

我有一些简单的C#代码(在.NET 4.8上),使用MailKit通过Office 365发送邮件:

var messageToSend = new MimeMessage
{
    Sender = new MailboxAddress("Data Catalyst Site", "xxx@xxx.xx"),
    Subject = "New Data Catalyst Site Contact",
    Body = new TextPart(TextFormat.Html) { Text = $"<html>{builder.ToString()}</html>" }
};

messageToSend.To.Add(new MailboxAddress("DataCatalyst", "yyy@xxx.xx"));

using (var smtp = new MailKit.Net.Smtp.SmtpClient())
{
    smtp.ServerCertificateValidationCallback = (s, c, h, e) => true;

    await smtp.ConnectAsync("smtp.office365.com", 587, SecureSocketOptions.StartTls);
    await smtp.AuthenticateAsync("xxx@xxx.xx", "********");
    await smtp.SendAsync(messageToSend);
    await smtp.DisconnectAsync(true);

};

我们有多个Office 365域。如果我使用一个域中的任何邮箱,则工作正常。如果我使用另一个邮箱,它将失败:

SmtpCommandException: 5.7.3 Authentication unsuccessful [LNXP265CA0036.GBRP265.PROD.OUTLOOK.COM]

我已经用我们通常的出站邮件帐户,我自己的帐户以及为该测试创建的新帐户/邮箱进行了测试。在每种情况下,我都非常了解密码,并且已经登录到办公室门户进行验证。

由于失败遍及多个邮箱,因此感觉就像是办公室配置中的某个设置-但是在哪里?还是我们还缺少什么?

0 个答案:

没有答案