Отправка электронной почты с использованием OAuth и личной электронной почты Microsoft.C#

Место общения программистов C#
Ответить
Anonymous
 Отправка электронной почты с использованием OAuth и личной электронной почты Microsoft.

Сообщение Anonymous »

Я пытаюсь отправить электронную почту с помощью библиотеки smtp Chilkat, используя личную учетную запись Microsoft и OAuth.
Вот часть кода, которую я использую:

Код: Выделить всё

// preparing Mail Object
Chilkat.MailMan mail = new Chilkat.MailMan()
{
SmtpHost = "smtp.office365.com",
SmtpPort = 587,
StartTLS = true,
SmtpUsername = sysConfig.Client.Email,
OAuth2AccessToken = token,
};

// opening smtp connection
bool bPass = mail.SmtpConnect();

if (bPass == false)
{
return false;
}

// authenticate smtp
bPass = mail.SmtpAuthenticate();   // it fails here

if (bPass == false)
{
return false;
}
Вот сообщение об ошибке, которое я получаю:

535 5.7.3 Аутентификация не удалась

[SI2P153CA0005.APCP153.PROD.OUTLOOK.COM 2025-12-04T14:15:45.148Z 08DE31ECD6048A52]

Я подумал, что срок действия моего токена доступа/обновления истек, поэтому я повторно авторизовал свою учетную запись. Но я все еще получаю ту же ошибку.
Затем я обратился к ChatGPT.. и он сказал (ядро):

Ваш код верен для OAuth2, но Outlook/Hotmail SMTP (smtp.office365.com) БОЛЬШЕ не принимает токены OAuth2 для личных учетных записей Hotmail/Outlook.com.

Это доказательство ответа ChatGpt:
Ответ Chat GPT о MS OAuth
Я забеспокоился и, подумав, спросил Google Gemini, и он сказал (ядро):

Неправда, что личные учетные записи Microsoft (например, Outlook.com, Hotmail.com) не поддерживают SMTP OAuth. Фактически, Microsoft постепенно отказывается от базовой аутентификации (имя пользователя и пароль) по соображениям безопасности и требует использования OAuth 2.0 (современная аутентификация) для приложений, подключающихся через SMTP.

Теперь у меня кружится голова, и я не понимаю, какой ИИ прав, а какой нет?
И если это поможет, мой токен доступа для доступа к следующим областям:

Код: Выделить всё

"openid",
"profile",
"User.Read",
"email",
"offline_access",
"Mail.ReadWrite",
"Mail.Send",
"SMTP.Send",
"MailboxSettings.ReadWrite",
"Files.ReadWrite",
Какая-нибудь помощь сделать это прямо здесь? (заставить код работать?)

Подробнее здесь: https://stackoverflow.com/questions/798 ... onal-email
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»