所以我在服务器上安装了 Postfix 并搭配 Discourse 使用(我知道这并不推荐)。
我的 Postfix 运行正常,并且可以正常发送邮件。
问题在于 Discourse/Docker 无法发送邮件(甚至无法完成管理员激活)。
我了解到:
- 这是一个 Docker 相关的问题。
- 你不应该在同一台服务器上部署 Postfix。
- 我的邮件会很快被标记为垃圾邮件。
你们使用的是什么样的 SMTP 服务器?
所以我在服务器上安装了 Postfix 并搭配 Discourse 使用(我知道这并不推荐)。
我的 Postfix 运行正常,并且可以正常发送邮件。
问题在于 Discourse/Docker 无法发送邮件(甚至无法完成管理员激活)。
我了解到:
你们使用的是什么样的 SMTP 服务器?
Postfix 和 Discourse 完全兼容,因此建议您相应地修改主题标题;)
您可能存在配置问题。
如果配置正确,所有邮件将直接送达收件箱。
我尝试了书中所有的配置方法。
我的 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!很高兴你加入。![]()
我觉得 mandrillapp.com 和 mailgun.com 都很可靠。
有人知道 Discourse 发送的邮件日志在哪里吗?
也许你可以先告诉我们你遇到的具体问题是什么,而不是只说“不工作”……
我最终放弃了,转而采用了 Amazon SES。
你好,
我在运行 Discourse 的 Bitnami Docker 容器时遇到了类似的问题。邮件无法发送。
我收到的错误信息如下:
“发送测试邮件时出现问题。请仔细检查您的邮件设置,确认主机未阻止邮件连接,然后重试。”
以下是我的 SMTP 设置:
| 投递方式 | |
|---|---|
| 地址 | smtp.sengrid.net |
| 端口 | 465 |
| 用户名 | apikey |
| 认证方式 | login |
| 启用 starttls_auto | true |
请问接下来我应该从哪些方面排查或寻求指导?
编辑:已尝试过端口 587、plain 认证方式,以及不同的 apikey 和密码。在其他应用中使用类似设置均能正常运行。
期望结果是邮件能从 Discourse 成功发送至测试账户的收件箱。
此致,
Jared
是的。请按照 Discourse 官方标准安装指南 操作,看看问题是否仍然存在。
编辑:也有可能是你的虚拟机阻止了 465 端口。你可以尝试 2525 端口(不确定 SendGrid 是否支持该端口,但他们很可能支持)。