Есть ли символы, которых следует избегать в пароле SMTP? Если да, то это может быть указано в документации.
Мой первоначальный пароль не сработал и вызвал ошибку. Я изменил пароль (отредактировав app.yml), а затем пересобрал приложение. После этого я смог получить письмо «Подтвердите свою новую учётную запись».
Подозрительным символом в исходном пароле был: ]
Для нового пароля я позволил Mailgun сгенерировать его за меня.
Специальные символы, такие как ], скорее всего, лучше избегать. Но, учитывая ответ Джей выше, я думал, что это должно работать, так же как и использование %.
Были ли в вашем пароле кавычки? Мне кажется, что " — это символ, который невозможно использовать, так как он закрывает пароль, если только вы не отредактируете app.yml, чтобы добавить экранирование \.
Если это не ответ, то, вероятно, нам нужно обновить эту тему документации, чтобы указать, какие специальные символы следует избегать! Или обновить установщик, добавив предупреждение?
Не вдаваясь в подробности, я бы сказал: либо смените пароль, убрав из него странные символы, либо отредактируйте файл app.yml вручную, заключив пароль в одинарные кавычки. discourse-setup — довольно примитивный инструмент, не рассчитанный на все возможные ситуации.
Я обновил первый пост, чтобы явно указать, что пароль не может содержать специальные символы. Это правильно?
Давайте поработаем над включением любых других советов в руководство и удалим все эти ответы. Просматривая их, я не совсем понимаю многие из них. Например, в самом первом ответе утверждается, что после обновления настроек SMTP требовалась пересборка, что противоречит руководству.
При настройке SMTP с использованием внешнего провайдера (я использовал SendGrid) я не получал письма с подтверждением регистрации. Запуск discourse-doctor выявил ошибку: Reason: 550 The from address does not match a verified Sender Identity.
Хотя у меня был аутентифицирован для отправки почты основной домен (example.com) в SendGrid, я еще не аутентифицировал поддомен discourse (discourse.example.com), из-за чего SendGrid отклонял вызовы API.
Хотя мне потребовалось всего около 15 минут, чтобы разобраться в этом, я считаю, что было бы полезно добавить дополнительный комментарий в app.yml и скрипт установки, чтобы сделать это более понятным и снизить барьер для новых пользователей, устанавливающих Discourse в будущем. Также было бы полезно дать прямую ссылку на страницу устранения неполадок.
Например:
# Большинство SMTP-провайдеров требуют аутентифицированный домен или аутентифицированный
# адрес электронной почты для отправки писем. Убедитесь, что вы аутентифицировали
# домен отправки (example.com), поддомен (discourse.example.com) и адрес
# электронной почты `notifications` у вашего SMTP-провайдера перед регистрацией
# новых пользователей, чтобы обеспечить доставку писем.
#
# Команда `discourse-doctor` может помочь в тестировании вашей конфигурации электронной почты.
# См.: https://meta.discourse.org/t/troubleshoot-email-on-a-new-discourse-install
Важное уведомление: с марта/апреля 2025 года DigitalOcean по умолчанию блокирует SMTP-порты на всех серверах (droplets). Они могут снять это ограничение, если вы откроете тикет в службу поддержки, но, судя по всему, решение принимается в индивидуальном порядке:
Надеемся, это сэкономит нервы другим пользователям, которые ломают голову над тем, почему их письма не отправляются, хотя всё настроено правильно!
Самая распространенная проблема заключается в том, что Discourse использует адрес электронной почты для уведомлений, для которого ваш SMTP-сервер не отправляет письма.