# Трудности с настройкой SMTP в Discourse через Azure Communication Service

**URL:** <https://meta.discourse.org/t/struggling-to-configure-smtp-in-discourse-with-azure-communication-service/290511>\
**Category:** Self-hosting\
**Tags:** email\
**Created:** [04.Январь.2024 14:16:42 UTC](https://meta.discourse.org/t/struggling-to-configure-smtp-in-discourse-with-azure-communication-service/290511 "2024-01-04T14:16:42Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![gichamba](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gichamba/32/103516_2.png) [@gichamba](https://meta.discourse.org/u/gichamba)\
**Post date:** [04.Январь.2024 14:16:42 UTC](https://meta.discourse.org/t/struggling-to-configure-smtp-in-discourse-with-azure-communication-service/290511/1 "2024-01-04T14:16:42Z")

</div>

Всем привет,

У меня возникли сложности с настройкой SMTP на моей установке Discourse, и это оказалось настоящим испытанием. Я перелопатил множество постов, таких как [этот](https://meta.discourse.org/t/troubleshoot-email-on-a-new-discourse-install/16326), но безрезультатно.

Вот суть дела: я подозреваю, что мои проблемы связаны с форматом и длиной имени пользователя и пароля, которые мне предписано использовать. Я подключаюсь к службе Azure Communication Service в качестве SMTP-сервера, что требует специфической конфигурации с использованием приложения Azure Entra (ранее Azure Active Directory).

Если коротко, формат имени пользователя выглядит примерно так (это не реальные учетные данные, а пример):

`<Имя ресурса Azure Communication Services>.<Идентификатор приложения Entra>.<Идентификатор арендатора приложения Entra>`

Вот пример: `my-communication-service.7d8233e0-c230-4468-a2de-1d03aa64bb71.49ba4f9c-3b18-43df-b5fd-5e203ba6e031`

Более подробную информацию можно найти по этой [ссылке](https://learn.microsoft.com/en-us/entra/identity-platform/howto-create-service-principal-portal).

Тем временем пароль должен соответствовать формату секретного ключа, сгенерированного Azure, например:

`b_C8Q~WjHH~MtFQptMj8wR1KroOZYigGy3A3Zc5M`

Теперь, у меня эта настройка отлично работает в C# с аналогичными учетными данными.

```plaintext
 private static void SendMail()
    {
        string smtpAuthUsername = "my-communication-service.7d8233e0-c230-4468-a2de-1d03aa64bb71.49ba4f9c-3b18-43df-b5fd-5e203ba6e031";
        string smtpAuthPassword = "a~C8Q~WjHH~MtFQptMj8wR1KroOZYigGy3A3Zc5M";

        string sender = "DoNotReply@my-domain.com";
        string recipient = "admin@my-domain";
        string subject = "Вы выбраны";
        string body = "Одно прекрасное тело";
        string smtpHostUrl = "smtp.azurecomm.net";

        using (var client = new SmtpClient(smtpHostUrl))
        {
            client.Port = 587;
            client.Credentials = new NetworkCredential(smtpAuthUsername, smtpAuthPassword);
            client.EnableSsl = false;

            var message = new MailMessage(sender, recipient, subject, body);

            try
            {
                client.Send(message);
                Console.WriteLine("Электронное письмо было успешно отправлено через Smtp.");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Smtp не удался с исключением: {ex.Message}.");
            }
        }
    }

```

Однако, когда я пытаюсь применить эти настройки в Discourse, начинаются проблемы. Вот как у меня настроено:

```plaintext
DISCOURSE_SMTP_ADDRESS: smtp.azurecomm.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "my-communication-service.7d8233e0-c230-4468-a2de-1d03aa64bb71.49ba4f9c-3b18-43df-b5fd-5e203ba6e031"
DISCOURSE_SMTP_PASSWORD: "b_C8Q~WjHH~MtFQptMj8wR1KroOZYigGy3A3Zc5M"
DISCOURSE_SMTP_ENABLE_START_TLS: true
DISCOURSE_SMTP_DOMAIN: my-domain.com
DISCOURSE_NOTIFICATION_EMAIL: DoNotReply@my-domain.com

```

Однако, несмотря на эту настройку, я продолжаю получать ошибку аутентификации, согласно фрагменту журнала:

`Job exception: Net::SMTPAuthenticationError`

Я пробовал заключать имя пользователя и пароль в кавычки разными способами — одинарные, двойные или вообще не заключать их. Но результат остается прежним.

Любые подсказки или предложения, что еще можно попробовать, будут крайне полезны.

---

_[View the full topic](https://meta.discourse.org/t/struggling-to-configure-smtp-in-discourse-with-azure-communication-service/290511)._
