Использование Postfix с Discourse

Итак, я установил Postfix на свой сервер вместе с Discourse (хотя знаю, что это не рекомендуется).
Postfix работает нормально, и я могу отправлять с его помощью письма.

Проблема в том, что Discourse в Docker не хочет отправлять письма (даже не получается получить письмо активации для администратора).

Я прочитал следующее:

  1. Это проблема Docker.
  2. Не следует устанавливать Postfix на тот же сервер.
  3. Мои письма очень быстро попадут в спам.

Какой SMTP-сервер используете вы?

Postfix и Discourse полностью совместимы, поэтому рекомендую изменить название вашей темы соответствующим образом :wink:
Вероятно, у вас проблема с конфигурацией.

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

Я перепробовал все возможные конфигурации.

Для моего Postfix /etc/postfix/main.cf:

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = discourse-mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = discourse-mydomain, mydomain.com, discourse-mydomain, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, 140.82.40.82, 172.17.0.2
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = 172.17.0.1
inet_protocols = all
home_mailbox = Maildir/
virtual_alias_maps = hash:/etc/postfix/virtual

Я даже изменил inet_interfaces, чтобы они соответствовали моему Docker-контейнеру.

  DISCOURSE_SMTP_ADDRESS: mail.mydomain.com
  #DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME:
  DISCOURSE_SMTP_PASSWORD:
  #DISCOURSE_SMTP_ENABLE_START_TLS: true

Не вижу, где именно ошибка в конфигурации. Есть какие-нибудь идеи?

Добро пожаловать на форум, @cmoi! Рады видеть вас здесь. :wave:

Я считаю, что mandrillapp.com и mailgun.com — довольно надежные варианты.

Кто-нибудь знает, куда отправляются логи почты от Discourse?

Может, начнёте с того, что объясните, в чём именно заключается ваша проблема, вместо того чтобы писать «не работает»…

  • Что вы делаете? (пожалуйста, опишите подробно)
  • Какой результат вы ожидаете?
  • Что происходит на самом деле?
  • Видите ли вы какие-либо сообщения об ошибках?
  • Есть ли что-то ещё, что стоит сообщить нам?

В итоге я сдался и выбрал Amazon SES.

Привет,

Столкнулся с похожей проблемой в контейнере Docker от Bitnami для Discourse. Письма просто не отправляются.
Вот ошибка, которую я получаю:
Произошла проблема при отправке тестового письма. Пожалуйста, проверьте настройки почты, убедитесь, что ваш хост не блокирует соединения для почты, и попробуйте снова.

Вот мои настройки SMTP:

Метод доставки
address smtp.sengrid.net
port 465
user_name apikey
authentication login
enable_starttls_auto true

Есть ли какие-либо рекомендации, куда смотреть или что проверять дальше?

Редактирование: Пробовал порт 587, метод аутентификации plain, разные apikey/пароль. Настроил это в других приложениях без проблем с похожими настройками.

Ожидаемый результат — отправка письма из Discourse во входящие тестового аккаунта.

С уважением,
Джаред

Да. Следуйте официальной стандартной установке Discourse и проверьте, сохраняется ли проблема.

РЕДАКТИРОВАНИЕ: также возможно, что ваша виртуальная машина блокирует порт 465. Вы можете попробовать порт 2525 (не уверен, поддерживает ли это SendGrid, но, вероятно, они поддерживают).