Аутентификация Microsoft SMTP OAuth2 на C# с MailKit всегда завершается сбоемC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Аутентификация Microsoft SMTP OAuth2 на C# с MailKit всегда завершается сбоем

Сообщение Anonymous »

Я хочу отправлять электронную почту через свою учетную запись электронной почты Microsoft. Поэтому я использую MailKit и OAuth2. Проблема в том, что каждый раз, когда я пытаюсь пройти аутентификацию для отправки электронных писем, я получаю ошибку аутентификации:
ошибка аутентификации
После получения токена я получите AuthenticationResult, который содержит только AccessToken, но значение Account равно нулю. Я не уверен, что это проблема. Я вообще не понимаю, в чем проблема.
Что я сделал?
  • Я создал приложение в Microsoft Entra: создал секрет клиента и установил разрешения API
введите описание изображения здесь
  • Проверил все необходимые настройки. Я знаю, что SMTP-аутентификация работает. Все настройки установлены, поэтому должно быть возможно, что SMTP-аутентификация работает.
  • Реализована функция получения токена OAuth2 из этого приложения для аутентификации.
  • Реализована функция отправки письма через Mailkit
  • Я искал решение почти две недели и нашел много ресурсов, но они не смогли решить мою проблему. Мне не нужен общедоступный поток аутентификации, в котором пользователь должен аутентифицировать себя в браузере. Я хочу сделать это непосредственно из серверной части.
Это код C# — функция для получения токена доступа:
var clientId = ""; // Azure App Client ID
var tenantId = ""; // Azure Tenant ID
var clientSecret = ""; // Azure App Client Secret

var authority = $"https://login.microsoftonline.com/{tenantId}/v2.0";
var scopes = new[] { "https://outlook.office365.com/.default" };

IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithAuthority(new Uri(authority))
.Build();

return await app.AcquireTokenForClient(scopes).ExecuteAsync();

Функция отправки электронной почты через MailKit
MimeMessage email = new();
email.From.Add(new MailboxAddress(model.UserName, _configuration.GetValue

Подробнее здесь: https://stackoverflow.com/questions/791 ... ils-always
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Аутентификация Microsoft SMTP OAuth2 на C# с MailKit всегда завершается сбоем
    Anonymous » » в форуме C#
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • MailKit и OAuth2 для Gmail SMTP — ошибка 5.7.8 BadCredentials
    Anonymous » » в форуме C#
    0 Ответы
    57 Просмотры
    Последнее сообщение Anonymous
  • MailKit и OAuth2 для Gmail SMTP — ошибка 5.7.8 BadCredentials
    Anonymous » » в форуме C#
    0 Ответы
    98 Просмотры
    Последнее сообщение Anonymous
  • MailKit OAuth2 SMTP Office365 Отправить почту
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Mailkit OAuth2 SMTP Office365 Отправить почту
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

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