如何让 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
    

    您应该会收到一封主题为“这是一封测试邮件”的电子邮件。

  4. containers/app.yml 中,确保注释掉以下三行:DISCOURSE_SMTP_USER_NAMEDISCOURSE_SMTP_PASSWORDDISCOURSE_SMTP_ENABLE_START_TLS

    并将 DISCOURSE_SMTP_DOMAIN 设置为 forum.domain.com(请在此处替换为您自己的域名)。

  5. 进行测试时,可以通过 docker exec -it app bash 连接到 Discourse 容器,然后运行:

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

    您应该会收到一封主题为“这是一封测试邮件”的电子邮件。

  6. 使用 ./launcher rebuild app 重启 Discourse。现在您应该能够创建新账户并收到验证邮件。