Как заставить Discourse работать с Postfix

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

  1. Настройте A-запись, указывающую на ваш новый сервер, например forum.domain.com.

  2. Установите Postfix, настройте myhostname как forum.domain.com и добавьте 172.17.0.0/16 в mynetworks, чтобы контейнер Discourse мог взаимодействовать с Postfix без аутентификации. 172.17.0.0/16 — это сеть по умолчанию, используемая контейнерами Docker.

  3. Убедитесь, что Postfix может отправлять письма. Я предпочитаю использовать swaks:

    swaks -t your_name@gmail.com
    

    Вы должны получить письмо с темой “This is a test mailing”.

  4. В файле containers/app.yml убедитесь, что закомментированы три строки для DISCOURSE_SMTP_USER_NAME, DISCOURSE_SMTP_PASSWORD и DISCOURSE_SMTP_ENABLE_START_TLS.

    Также установите DISCOURSE_SMTP_DOMAIN равным forum.domain.com (не забудьте заменить на ваше доменное имя).

  5. Для тестирования подключитесь к контейнеру Discourse командой docker exec -it app bash и выполните:

    apt update
    apt install -y swaks
    swaks -t name@gmail.com --server forum.domain.com
    

    Вы должны получить письмо с темой “This is a test mailing”.

  6. Перезапустите Discourse командой ./launcher rebuild app. Теперь вы должны иметь возможность создавать новые аккаунты и получать письма с подтверждением.