# 管理员激活邮件在全新自托管安装（ubuntu 20.04）上未发送

**URL:** <https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330>\
**Category:** Self-hosting\
**Created:** [2021年一月17日 01:22 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330 "2021-01-17T01:22:37Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![cazee](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cazee/32/206311_2.png) [@cazee](https://meta.discourse.org/u/cazee)\
**Post date:** [2021年一月17日 01:22 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330/1 "2021-01-17T01:22:37Z")

</div>

大家好，

我在 Ubuntu 18.04 的 VPS 上自托管了一个运行良好的 Discourse 实例，已经大约一年了。随着论坛的发展，我开始准备迁移到性能更强的 VPS。因此，我使用了一个最小化的 Ubuntu 20.04 镜像，应用了一些典型的加固措施，并按照 30 分钟安装指南安装了 Discourse Docker。我使用了与现有运行良好的实例完全相同的配置值。但是：激活邮件无法发送。[新 Discourse 安装中的邮件故障排查](https://meta.discourse.org/t/troubleshooting-email-on-a-new-discourse-install/16326) 指南未能提供帮助——我可以通过 telnet 连接，但在运行 `./discourse-doctor` 时收到以下错误：

```
>==================== 邮件测试 ====================
要进行更全面的测试，请访问 http://www.mail-tester.com/ 获取一个测试地址
或者只需给自己发送一封测试邮件。
用于邮件测试的邮箱地址？（输入 'n' 跳过）[已匿名化]: test-9ymkghbvc@srv1.mail-tester.com
正在向 test-9ymkghbvc@srv1.mail-tester.com 发送邮件...
正在使用 smtp.mailbox.org:587 测试向 test-9ymkghbvc@srv1.mail-tester.com 发送邮件。
==================== 错误 ======================
                                    意外错误
>
>503 5.5.1 错误：未启用身份验证
>
>
>================== 解决方案 =====================
>这不是一个常见错误，目前没有推荐的解决方案！
>
>请将上述确切的错误信息报告至 https://meta.discourse.org/
（如果您找到了解决方案，也请一并告知！）
=================================================

```

（为了能够在此发布，我不得不删去上述 URL 中的一些部分）

奇怪的是：在我运行良好的 VPS 上运行 `./discourse-doctor` 时也会收到相同的错误，因此我不确定该错误是否相关。  
如您所见，我使用的是 [mailbox.org](http://mailbox.org) 作为邮件提供商，它运行非常稳定，在隐私保护和邮件基础设施设置方面都是绝佳选择。我已经检查了主机和端口，并且多年来一直在 Thunderbird 和其他 Discourse 实例中使用这些配置。

有什么建议吗？我看到的两个 VPS 之间唯一的区别是：正常运行的 VPS 使用的是 Ubuntu 18.04，而出现问题的是运行 Ubuntu 20.04 的 VPS。

谢谢，cazee

---

<div class="post-metadata">

**Author:** ![Timelord](https://avatars.discourse-cdn.com/v4/letter/t/ba9def/32.png) [@Timelord](https://meta.discourse.org/u/Timelord)\
**Post date:** [2021年一月18日 14:20 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330/2 "2021-01-18T14:20:14Z")

</div>

在进行加固时，您是否意外阻止了端口 587？

您的 yaml.app 文件中是否存在拼写错误？

> smtp mailbox org:587

这是否应为：

> smtp.mailbox org:587

请注意那个点。

---

<div class="post-metadata">

**Author:** ![cazee](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cazee/32/206311_2.png) [@cazee](https://meta.discourse.org/u/cazee)\
**Post date:** [2021年一月20日 22:57 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330/3 "2021-01-20T22:57:40Z")

</div>

感谢您的建议。

端口 587 已开放，我可以按照故障排除指南中的说明，使用 telnet 连接到 SMTP 服务器。  
此外，在禁用 ufw 的情况下也进行了测试，结果相同。

YAML 文件中没有拼写错误——我在发帖时故意去掉了这些点（新论坛账户，每篇帖子仅允许包含 2 个 URL）。

我还应该检查或尝试其他什么？

---

<div class="post-metadata">

**Author:** ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)\
**Post date:** [2021年一月22日 03:22 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330/4 "2021-01-22T03:22:34Z")

</div>

请将代码以正确的代码块形式发布，这就是你遇到那些问题的原因。

---

<div class="post-metadata">

**Author:** ![cazee](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cazee/32/206311_2.png) [@cazee](https://meta.discourse.org/u/cazee)\
**Post date:** [2021年一月24日 17:35 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330/5 "2021-01-24T17:35:52Z")

</div>

**我终于解决了这个问题。**

问题出在 Discourse 默认使用的发件人邮箱地址。该地址是根据设置中输入的主机名构建的（在我的例子中类似于 `v220200xxxxxxxxxxxx.powersrv.de`），从而生成了发件人地址 `noreply@v220200xxxxxxxxxxxx.powersrv.de`，该地址被 SMTP 服务器拒绝。

那么，我为什么要使用这个不友好的主机名呢？只是因为这台服务器旨在替换现有的服务器，而现有服务器对于我们日益壮大的 Discourse 社区来说已经太小了。我正在准备和测试新服务器，稍后将切换 DNS 设置以指向这台新服务器。我只是想节省时间，避免在这里创建临时的友好 DNS 设置。

**如何解决这个问题？**  
在 app.yml 文件末尾查找以下行：

```plaintext
## 如果您想为首次注册设置“发件人”邮箱地址，请取消注释并修改：
## 在收到第一封注册邮件后，请重新注释该行。它只需要运行一次。

```

取消注释并修改最后一行，将其更改为您的 SMTP 服务器接受的有效发件人地址，例如：  
`- exec: rails r "SiteSetting.notification_email='USER@DOMAIN.TLD'"`

现在运行 `./launcher rebuild app` 使更改生效，好了——现在激活邮件已发送，您可以激活管理员账户并完成设置。

**我是如何发现的？**  
我向网络托管服务提供商申请了一个新的邮件账户，并使用这些 SMTP 凭证重新运行了 Discourse 设置——并如预期收到了激活邮件。因此，我知道问题一定与 SMTP 设置有关（而与 Ubuntu / Docker / Discourse 设置的其他方面无关）。  
在使用另一个 SMTP 服务器激活管理员账户后，我进入 设置 \> 邮件 \> 已跳过，发现了发送激活邮件失败的尝试：`553 5.7.1 <noreply@v220200xxxxxxxxxxxx.powersrv.de>：发件人地址被拒绝：不属于用户 USER@DOMAIN.TLD`

**结论**  
我想提请 Discourse 开发团队注意以下功能请求：[建议 - 允许在设置期间可选地设置系统邮件“发件人”](https://meta.discourse.org/t/suggestion-allow-optional-system-email-from-setting-during-setup/52803)。请考虑测试安装（例如，作为实际升级实例前的副本以运行一些测试）可能没有友好的主机地址的情况。如果不必进入 app.yaml 就能完成这些设置，将会顺畅得多。此外，我认为让管理员有权选择使用不绑定于 Discourse 主机名的邮箱地址是个好主意。

谢谢 🙂

同时也感谢 @codinghorror 指点我如何发布代码块。

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2021年二月11日 16:14 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330/6 "2021-02-11T16:14:48Z")

</div>

我正在对 `discourse-setup` 进行一项更改，该更改将要求您在设置过程中配置 `notification_email`。这应该能从根本上解决您遇到的类似问题。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年二月23日 17:26 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330/7 "2021-02-23T17:26:35Z")

</div>

> [@pfaffman](#):
>
> 我正在对 `discourse-setup` 进行一项更改，这将要求您在设置过程中设置 `notification_email`。

此更改现已合并，在新安装时将会询问您！

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年二月23日 17:26 UTC](https://meta.discourse.org/t/admin-activation-e-mail-not-sent-on-fresh-self-hosted-install-ubuntu-20-04/176330/8 "2021-02-23T17:26:37Z")

</div>


