Discourse 论坛激活邮件问题

根据 Discourse 的官方推荐,我们使用的是 MailGun 的服务。

在大部分情况下都没有问题,但是在一些特定的邮件地址,例如 iCloud,我们在发送激活邮件的时候有提示为:

"message": "5.5.1 Error: need MAIL command - MAIL FROM error: 450 4.1.8 <bounce+6712f2.21c8873-lucas.hu=@mail.visafn.com>: Sender address rejected: Domain not found",


下面的图片显示了邮件服务提供商提供的错误日志信息:

问题和解决

上面问题的主要原因是一些特定的邮件服务商有垃圾邮件校验策略。

尤其是 iCloud,在 iCloud 中对发送电子邮件的域名地址会进行校验。

因为我们的服务使用了子域名的发送,我们发送的域名地址实际为:mail.visafn.com 而不是传统的 visafn.com

因此,iCloud 没有办法校验上面的地址,而认为系统发送的邮件为垃圾邮件而拒收了。

解决办法

解决的办法也非常简单,需要确定 mail.visafn.com 我们发送邮件使用的这个二级域名的 MX 记录在 DNS 上要存在。


如上图标记的内容。

二级域名的 MX 记录需要添加到你的 DNS 上,并且上面的记录要显示为被校验。

当然更新 DNS 不会马上生效,你如果继续往 iCloud 中发送的话,可能还是会出现间歇性错误。

等待几个小时后再进行测试,通常能够解决发送邮件被标记为垃圾邮件的问题。

通常 Discourse 发送电子邮件的问题,多半是电子邮件服务器配置和 DNS,MX 记录的问题。

1 Like

謝謝教學
但我用gmail的 這個可參考

1 Like

最开始我们也用了 Gmail 的 SMTP 服务。

这里有个问题是 Gmail 的日发送邮件限制。

根据 Gmail 的官方文档:Gmail sending limits in Google Workspace - Google Workspace Admin Help Gmail 是有日常发送邮件限制的。

通常在几千不等,如果论坛服务器发送邮件数量超过这个数量的话就不一定能够发送出去了。

一般来说比较大的邮件发送,可能会考虑用 Gmail 的 API,但 Gmail 的 API 实在不是那么好用:Sending Email  |  Gmail API  |  Google Developers

为了图省事,并且还有邮件发送分析功能,个人感觉使用 MailGun 或者其他第三方的服务要稳定不少。

2 Likes