邮件未发给新用户

您好,我是新安装的,我设法在 WHM 中安装了 discourse,并且似乎一切正常,直到我在发送测试邮件时收到此错误。

**Started POST "/presence/update" for <我的 IP> at 2025-01-23 15:08:27 +0000**
**Processing by PresenceController#update as */***
**  Parameters: {"client_id"=>"6bb38285bd0c458a889c15cf6903abc5", "present_channels"=>["/chat-user/core/1"]}**
**Completed 200 OK in 5ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 1845)**
**Started POST "/admin/email/test" for <我的 IP> at 2025-01-23 15:08:29 +0000**
**Processing by Admin::EmailController#test as */***
**  Parameters: {"email_address"=>"<我的邮箱>"}**
**Completed 422 Unprocessable Entity in 5042ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 13268)**
**Started POST "/presence/update" for <我的 IP> at 2025-01-23 15:08:41 +0000**
**Processing by PresenceController#update as */***
**  Parameters: {"client_id"=>"6bb38285bd0c458a889c15cf6903abc5", "present_channels"=>["/chat-user/core/1"]}**
**Completed 200 OK in 6ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 1795)**

这是我的 smtp 设置:
DISCOURSE_SMTP_ADDRESS: <子域名>
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: info@<子域名>
DISCOURSE_SMTP_PASSWORD: “请勿发布密码”
DISCOURSE_SMTP_ENABLE_START_TLS: true # (可选,默认为 true)
DISCOURSE_SMTP_DOMAIN: <子域名> # (某些提供商需要)
DISCOURSE_NOTIFICATION_EMAIL: info@<子域名>

这个子域名托管在同一台机器上,并且通过 WHM/Cpanel 进行管理,exim 就在基础机器上,邮件可以正常工作,我之前已经测试过了,但从 discourse 中无法使用,并且我尝试从我的基础机器上 telnet,端口 25 可以工作,但当我使用 ./discourse-docker mail 测试时,所有端口 2525、25、587、465 均失败。从容器内部无法访问任何端口。请告诉我是否遗漏了什么,或者是否有办法使用我的 exim 服务来支持 discourse。

另外,请将您的设置格式化为三连反引号(```),并删除星号。


您的托管服务提供商是否正在阻止这些端口?

2 个赞

请问您使用的是哪家 SMTP 提供商(例如 Mailgun)以及 SMTP 用户名电子邮件地址是什么?(通常是 DISCOURSE_SMTP_USER_NAME: postmaster@**

我应该隐藏那个 SMTP 密码。

3 个赞

另外,为了安全起见,我会更改密码!

3 个赞

感谢您的建议,但我当然会在粘贴到这里之前对其进行更改,但这只是为了展示,我在这里使用的是子域,而且在任何人提出意见之前,是的,所有记录都在那里,mx、spf、dmarc、dkim,一切都已设置。我只想了解是什么导致了这个问题,为什么它无法连接到容器外部,但在主机上一切正常。

1 个赞

所以看起来只是一个小问题,我在 /etc/docker/daemon.json 文件中添加了 Google DNS,然后重启了 Docker,销毁了应用程序并重新启动它,瞧,邮件现在可以发送了。

1 个赞