Почему проверка подлинности с помощью Office365 SMTP утверждает, что правильные учетные данные недействительны? - PullRequest
1 голос
/ 28 сентября 2019

Я пытался использовать функциональность SMTP в Office 365, но столкнулся с трудностями при попытке аутентификации на нем.

Это код, с которым я тестирую:

string host = "smtp.office365.com";
int port = 587;
string username = "<redacted>";
string password = "<redacted>";

var client = new SmtpClient(new ProtocolLogger("C:\\temp\\mailerLog.log"));

client.Connect(host, port, MailKit.Security.SecureSocketOptions.Auto);
{
    client.Authenticate(new NetworkCredential(username, password));
}

Теперь, хотя я, очевидно, удалил учетные данные из этого примера, эти учетные данные абсолютно те, которые я могу скопировать и вставить, чтобы войти в outlook.office365.com в веб-браузере без проблем.

При запускеоднако выше MailKit.Security.AuthenticationException генерируется со следующим сообщением (я отредактировал части, которые могут быть идентифицирующей информацией):

535: 5.7.3 Authentication unsuccessful [<redacted>.<redacted>.PROD.OUTLOOK.COM]

InnerException имеет тип MailKit.Net.Smtp.SmtpCommandException и имеет StatusCode из AuthenticationInvalidCredentials, что говорит о том, что учетные данные должны быть неправильными ... но почему?Какими могут / должны быть учетные данные для Office 365, кроме самой учетной записи?Что я делаю не так?

Мне кажется, что должен быть пропущенный шаг, например, что-то, что нужно настроить в Office365, но после перетаскивания панели администратора я не уверен, что это может быть.

Я также попытался взглянуть на то, что регистрируется, но, похоже, мне это не раскрывает.Я включил его ниже (с отредактированной идентифицирующей информацией) на случай, если кто-то, более знакомый с SMTP, заметит что-то, что покажет, что не так:

Connected to smtp://smtp.office365.com:587/?starttls=when-available
S: 220 <redacted>.outlook.office365.com Microsoft ESMTP MAIL Service ready at Fri, 27 Sep 2019 20:52:52 +0000
C: EHLO [192.168.1.17]
S: 250-<redacted>.outlook.office365.com Hello [<redacted>]
S: 250-SIZE 157286400
S: 250-PIPELINING
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-STARTTLS
S: 250-8BITMIME
S: 250-BINARYMIME
S: 250-CHUNKING
S: 250 SMTPUTF8
C: STARTTLS
S: 220 2.0.0 SMTP server ready
C: EHLO [192.168.1.17]
S: 250-<redacted>.outlook.office365.com Hello [<redacted>]
S: 250-SIZE 157286400
S: 250-PIPELINING
S: 250-DSN
S: 250-ENHANCEDSTATUSCODES
S: 250-AUTH LOGIN XOAUTH2
S: 250-8BITMIME
S: 250-BINARYMIME
S: 250-CHUNKING
S: 250 SMTPUTF8
C: AUTH LOGIN
S: 334 VXNlcm5hbWU6
C: <redacted>
S: 334 UGFzc3dvcmQ6
C: <redacted>
S: 535 5.7.3 Authentication unsuccessful [<redacted>.<redacted>.PROD.OUTLOOK.COM]

Кроме того, я не считаю, что этот вопрос является дубликатом, поскольку покаЕсть другие подобные вопросы о Stackoverflow, они либо используют устаревшую System.Net.Mail.SmtpClient от Microsoft, либо используют полноценные серверы Exchange, на которых легко доступна конфигурация на стороне сервера (если я что-то где-то не пропустил).

...