Troubleshoot email on a new Discourse install

Есть ли символы, которых следует избегать в пароле SMTP? Если да, то это может быть указано в документации.

Мой первоначальный пароль не сработал и вызвал ошибку. Я изменил пароль (отредактировав app.yml), а затем пересобрал приложение. После этого я смог получить письмо «Подтвердите свою новую учётную запись».

Подозрительным символом в исходном пароле был: ]

Для нового пароля я позволил Mailgun сгенерировать его за меня.

1 лайк

Привет, Тед! Добро пожаловать в наше сообщество! :hugs:

Специальные символы, такие как ], скорее всего, лучше избегать. Но, учитывая ответ Джей выше, я думал, что это должно работать, так же как и использование %.

Были ли в вашем пароле кавычки? Мне кажется, что " — это символ, который невозможно использовать, так как он закрывает пароль, если только вы не отредактируете app.yml, чтобы добавить экранирование \.

Если это не ответ, то, вероятно, нам нужно обновить эту тему документации, чтобы указать, какие специальные символы следует избегать! Или обновить установщик, добавив предупреждение?

2 лайка

Не вдаваясь в подробности, я бы сказал: либо смените пароль, убрав из него странные символы, либо отредактируйте файл app.yml вручную, заключив пароль в одинарные кавычки. discourse-setup — довольно примитивный инструмент, не рассчитанный на все возможные ситуации.

1 лайк

Я бы именно это и порекомендовал. Эта небольшая задержка, вероятно, добавила 30 минут к моему процессу установки.

Ещё лучше: добавить проверку пароля при установке, чтобы отклонять пароли, не соответствующие критериям.

2 лайка

Я обновил первый пост, чтобы явно указать, что пароль не может содержать специальные символы. Это правильно?

Давайте поработаем над включением любых других советов в руководство и удалим все эти ответы. Просматривая их, я не совсем понимаю многие из них. Например, в самом первом ответе утверждается, что после обновления настроек SMTP требовалась пересборка, что противоречит руководству.

2 лайка

Предложение по улучшению документации:

При настройке 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
6 лайков

Почему порт 587 для электронной почты не работает с Mailgun, а порт 2525 работает? Я изменил порт на 2525 в app.yml, но он всё равно не работает.

Как это исправить?

Вы уничтожили и запустили контейнер заново (или пересобрали его) после изменения порта?

1 лайк

Я пересобрал после изменения порта. Нужно ли уничтожить и запустить контейнер заново?

Важное уведомление: с марта/апреля 2025 года DigitalOcean по умолчанию блокирует SMTP-порты на всех серверах (droplets). Они могут снять это ограничение, если вы откроете тикет в службу поддержки, но, судя по всему, решение принимается в индивидуальном порядке:

Надеемся, это сэкономит нервы другим пользователям, которые ломают голову над тем, почему их письма не отправляются, хотя всё настроено правильно! :sweat_smile:

2 лайка

Порт 25 работал на входящий трафик несколько дней назад, но никогда на исходящий.

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

1 лайк

Как мне настроить Droplet в DigitalOcean и развернуть Discourse? Я делаю это впервые.

Посмотрите здесь :slight_smile:

1 лайк

Во время установки электронное письмо не получено. Однако тестовые инструменты отправили письмо с моей информацией SMTP.

Самая распространенная проблема заключается в том, что Discourse использует адрес электронной почты для уведомлений, для которого ваш SMTP-сервер не отправляет письма.

В Python/Django есть консольная команда python manage.py sendtestemail

Есть ли аналогичная команда в Discourse?

да

внизу, но, возможно, вам потребуется быть администратором

2 лайка