大家好,又是我 
我注意到,当新用户注册我们的论坛时,有时收不到邮件。
在下图中可以看到,有些用户是 3 天前甚至 7 天前注册的,但从未收到注册邮件(红框显示的是“上次发送邮件的时间”)。
我知道邮件配置是正确的,因为我可以收到邮件(例如,点击“忘记密码”后,我会收到一封包含操作说明的邮件)。我知道 Mailgun 是另一家公司,但我不确定问题是否出在他们那里。可能是什么原因呢?
编辑:我刚才也尝试自己注册,系统提示 Discourse 已发送注册邮件,但我的邮箱里并没有收到(检查了所有文件夹,包括垃圾邮件和已删除邮件)。我还尝试在管理区域查看邮件 → 已发送邮件,但没有看到该用户的“注册”记录。请帮忙,因为看起来新用户无法成功注册我们的论坛。
感谢您的快速回复 
我检查了日志,没有发现任何尝试发送注册邮件的迹象。因此,我以为是 Discourse 端的问题(也许是它未能请求 Mailgun 发送邮件?)。有什么想法吗?
您确定您的服务器托管提供商没有封锁您用于电子邮件的端口吗?
一些提供商(包括 DigitalOcean)已知会封锁端口 25、465 和 587,以防止新服务器发送垃圾邮件。如果您遇到此问题,可以尝试使用 Mailgun 并通过端口 2525(在 app.yml 中修改端口并重新构建)。
检查端口是否被封锁的一个简单方法是使用 telnet 命令:
telnet smtp.mailgun.com <port>
感谢您的回复。
不幸的是,我没有安装 telnet。我尝试将端口从 587 更改为 2525,但看起来仍然无法发送 注册 邮件。我使用的是 DigitalOcean,我也了解到这可能是一个问题,但如果他们阻止了它,Discourse 难道不应该在 admin->mail logs 的失败部分记录吗?
是的,我输入了。我还尝试了 which talnet,但没有任何返回。(它难道不是除了作为协议之外,也是一个 Linux 命令吗?)
我尝试查看 /sidekiq(我在类似帖子中看到了这个建议)。没有失败记录,也没有提到尝试发送激活邮件。我最近确实重启过,并尝试将邮件端口切换到之前建议的 2525。
哦,抱歉,犯了这么低级的错误 
看起来这两个都是有效的:
所以问题不在 DigitalOcean 或 MailGun 这边,对吧?
这似乎并不是 Discourse 本身的问题。
你能检查一下 example.com/logs,看看是否有与邮件相关的具体信息吗?另外,也请查看 /sidekiq,确认是否有失败的作业。
在日志中我有:

我不认为它们与邮件问题有关,但如果有人知道如何解决,我很乐意听取建议。
在 sidekiq 中,我没有看到任何失败或死锁的任务。
顺便说一句,只是想感谢所有尝试提供帮助的朋友 
这看起来有些奇怪,我实在想不出原因。你能在 Mailgun 日志中看到邮件发送记录吗?其他邮件是否正常工作?能否向这些邮箱地址发送 Discourse 测试邮件且没有问题?
我能看到的已发送邮件只有:
上一次自动摘要报告是在两天前发送给我的(目前我们是一个小型论坛,所以邮件数量不多)。
我刚才尝试测试发送这份报告,它确实向我发送了摘要邮件(顺便提一下,摘要邮件是否只会发送给管理员?因为我尝试用普通用户测试,但没有成功)。
有没有办法向非管理员邮箱发送测试邮件?
啊哈!我看到问题了!
你是否将站点设置 disable_emails 限制为“是”或“仅限员工”?
如果设置为“是”或“仅限员工”,那么在 Discourse 端就会阻止邮件发送,导致除了现有员工外,其他人实际上都无法触发邮件。
是的,就是这样!
我还没考虑到这点(也许是因为我的设置是半英文半希伯来文写的)。
答案正确。完美,现在可以用了:sweat_smile:
感谢大家的帮助:slight_smile: