如何在 admin/settings/emails 中更改电子邮件地址?

我在 Digital Ocean 中设置 Discourse 时遇到了以下错误消息,现在我的 Discourse 板块 wespenboard.com 无法加载。

1 个赞

您似乎在输入框中输入了 IP 地址而不是域名。方括号中的值是已有的值,因此对于您不打算更新的项,您可以按“Enter”键直接跳到下一项。

您应该可以通过运行以下命令来重启您的实例:

./launcher restart web_only

2 个赞

太棒了!奏效了……谢谢!现在网站可以加载了。那么,主机名就是网址吗?我在 WinSCP 中看到主机列出的是 IP 地址,所以我输入了 IP。

1 个赞

discourse set-up 的那部分,你应该可以直接按“回车”键跳到下一步,因为它已经知道上次的信息了。然后,当你遇到 SMTP 特定的部分时,你可以添加新信息来覆盖之前的内容。

但是它不支持 IP 地址,只支持域名。:+1:

3 个赞

我只是想来问问你的进展如何。:slightly_smiling_face: 已经搞定了吗?

2 个赞

感谢您的关注,Jammy。我有点慢,因为我还在搬到另一个国家。所以,我还没有尝试。

您建议我继续在控制台操作时,我已经退出了,所以我想我需要从主机名重新开始。另外,还是 discourse.example.com,对吧?

如果在过程中出现任何问题,对用户造成负面影响,例如,像上次一样 Discourse 宕机了,有没有一个“通用”的命令可以撤销我所做的操作,以便 Discourse 至少能像我开始使用控制台之前那样工作?只是想为自己留条后路 :slight_smile:

2 个赞

没关系,我不着急。:slightly_smiling_face:

我将提供一个分步指南供您参考:

  • 打开您的 Digital Ocean 控制台
  • cd /var/discourse
  • ./discourse-setup

然后它会问一系列问题。由于您的论坛已经运行,您会看到方括号中的值(例如 [discourse.example.com])会预先填入您现有的信息:

如果这些信息不需要更改,您只需按“回车”键即可进入下一个问题。

以下是它提出的问题:

您的 Discourse 的主机名? [discourse.example.com]: 
管理员账户的电子邮件地址? [me@example.com,you@example.com]: 
SMTP 服务器地址? [smtp.example.com]: 
SMTP 端口? [587]: 
SMTP 用户名? [user@example.com]: 
SMTP 密码? [pa$$word]: 
Let's Encrypt 账户电子邮件? (按 Enter 跳过) [me@example.com]: 
可选的 Maxmind 许可证密钥 () [xxxxxxxxxxxxxxxx]:

您需要添加新信息的是 SMTP 相关项。SMTP 端口仍将是 587,因此您也可以直接按“回车”键。其他信息您需要从您的邮件提供商处获取(我认为是 sendinblue)。

输入所有信息后,它将有机会让您查看输入的内容,然后将使用新信息重建您的实例。一切顺利的话,这就完成了。:+1:

如果由于某种原因(像昨天那样)不起作用,运行 ./launcher restart web_only 应该可以恢复您重建之前的版本。


从您之前的截图来看,您的服务器似乎也需要一些维护,但如果我们能先解决您的电子邮件问题,您可以告诉我您是否有兴趣进一步了解。:slightly_smiling_face::+1:

2 个赞

这真是太有帮助了!谢谢你。我试过之后会尽快回来,无论成功与否,我都会告诉你 :slight_smile:

2 个赞

我运行了它,并在最后收到了以下错误消息:

然后我尝试重新启动 web_only,收到了以下错误消息,现在我的 Discourse 无法访问了。该怎么办?

1 个赞

letsencrypt 电子邮件似乎未被接受。

但要恢复旧的,您可以:

./launcher restart data

然后

./launcher restart web_only

1 个赞

它仍然不允许我。我需要先从控制台注销,然后运行 restart data,再运行 web_only 吗?

不确定这又是什么意思:“无法链接到未运行的容器:/data AS /web_only/data”

1 个赞

在我的容器中,它看起来是这样的。不知道它是否应该看起来是这样?

1 个赞

那些额外的 web_only 文件是我们更新它的两次尝试。它们会在清理过程中被清除(但请在您的网站运行起来之前不要运行清理,因为它会清除任何未主动附加到某项内容的东西 :slightly_smiling_face:)。

我已经在测试站点上镜像了您的设置(两个容器和 sendinblue SMTP),试图更好地了解发生了什么。当我收到 Cannot link to a non running container: /data AS /web_only/data 消息时,重新启动数据容器,然后重新启动 web_only 容器对我来说是有效的。但我刚刚尝试以类似的方式重新运行 discourse-setup,以复制您的确切情况,以便更好地理解。

我可能应该说,单容器安装得到了更广泛的支持,所以如果这让您感到非常沮丧,另一个选择是创建一个新的 Digital Ocean 实例,并使用标准安装指南安装一个全新的实例。然后,您可以恢复备份,并希望在维护它时会更容易。

1 个赞

您可以执行

 ./launcher destroy web_only
 ./launcher start web_only

这将使您连接到数据容器。

如果您只想更改 smtp 设置,可以先用 nano 编辑 web_only.yml,然后执行上面的 destroy、start 序列。

3 个赞

我已退出控制台并打开了一个新的控制台,并按照您的说明操作,但仍然收到相同的错误消息:“无法链接到未运行的容器”。

有没有办法让我恢复到在控制台中设置 SMTP 之前的状态?我现在无法完成 Discourse 的全新设置。在我搬家的时候,这太令人沮丧了。

谢谢 Jammy。

2 个赞

谢天谢地,骑兵又来了。:slightly_smiling_face: 我看到你们的网站现在又恢复了。:partying_face:

2 个赞

@pfaffman 谢天谢地,那奏效了。谢谢 Jay!

我想我得等到下周末搬到新地方再说。现在最重要的是保持论坛正常运行。看起来人们仍然可以通过使用他们现有的 Google 密码来更改密码和注册论坛。所以,我们暂时就这么做。而且你昨天向我展示了如何使用 WinSCP 进行硬盘备份。所以,我想我们暂时就用这个方法。

再次感谢!

编辑:我说它奏效了,指的是网站已上线运行。我仍然需要尝试你提出的其他建议来直接更改 SMTP,但我可能会稍后进行。

2 个赞

我很难放弃,哈哈。Jay、Jammy 或其他人,你们能看出有什么不符之处吗?例如,我在 LETSENCRYPT_ACCOUNT_EMAIL: 后面输入了 OFF:不确定这是否正确……

## TODO: 用于验证新帐户和发送通知的 SMTP 邮件服务器
  # 需要 SMTP 地址、用户名和密码
  # 警告:SMTP 密码中的字符 '#' 可能会导致问题!
  DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: wespenre2@gmail.com
  DISCOURSE_SMTP_PASSWORD: "在此粘贴中已删除"
  DISCOURSE_SMTP_ENABLE_START_TLS: false           # (可选,默认为 true)
  DISCOURSE_SMTP_DOMAIN: gmail.com
  DISCOURSE_NOTIFICATION_EMAIL: wespenre2@gmail.com


  ## 如果您添加了 Let's Encrypt 模板,请取消注释下方内容以获取免费 SSL 证书
  LETSENCRYPT_ACCOUNT_EMAIL: OFF

  ## TODO: 配置数据库连接
  DISCOURSE_DB_SOCKET: ''
  #DISCOURSE_DB_USERNAME: discourse
  DISCOURSE_DB_PASSWORD: "在此粘贴中已删除"
  DISCOURSE_DB_HOST: data
  DISCOURSE_REDIS_HOST: data

1 个赞

我将我的 letsencrypt_account_email 保留为默认的 me@example.com(使用非电子邮件地址会破坏重建)。我也将 DISCOURSE_SMTP_ENABLE_START_TLS: 保留为默认的 true。

并且您的电子邮件域名应该是您的域名,然后我认为您希望您的通知电子邮件前面有一个 noreply@ 或类似的地址。

我去复制一份我的

DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: admin@jammydodger.monster
DISCOURSE_SMTP_PASSWORD: "secret-password"
#DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)
DISCOURSE_SMTP_DOMAIN: test.jammydodger.monster
DISCOURSE_NOTIFICATION_EMAIL: noreply@test.jammydodger.monster

## 如果您添加了 Lets Encrypt 模板,请取消注释下方以获取免费 SSL 证书
LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
1 个赞

谢谢 Jammy。呼,我再试一次,然后会回到这里……哈哈。

在我开始之前,我想确认一下:noreply 电子邮件,应该是 noreply@gmail.com 吗?Gmail 是我在 Discourse 上唯一使用的电子邮件域名。这会自动在 Gmail 中创建一个 noreply 选项,还是我应该使用哪个域名来发送 noreply 电子邮件?或者,我是否可以用 wespenre2@gmail.com 替换 noreply 电子邮件?

我在 WinSCP 中编辑了以下内容(见下文),通过右键单击 web_only.yml 进行编辑,但我还没有刷新它。想先听听你的意见。

然后,如果一切看起来都正常,并且我刷新了它,我会在刷新后运行 ./launcher destroy web_only 然后 ./launcher start web_only,对吗?然后它应该就能工作了?

这样可以吗?

 ## TODO: 用于验证新帐户和发送通知的 SMTP 邮件服务器
  # 需要 SMTP 地址、用户名和密码
  # 警告:SMTP 密码中的字符 '#' 可能会导致问题!
  DISCOURSE_SMTP_ADDRESS: smtp-relay.sendinblue.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: wespenre2@gmail.com
  DISCOURSE_SMTP_PASSWORD: "password"
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (可选,默认为 true)
  DISCOURSE_SMTP_DOMAIN: gmail.com
  DISCOURSE_NOTIFICATION_EMAIL: noreply@gmail.com


  ## 如果您添加了 Lets Encrypt 模板,请取消注释下面以获取免费 SSL 证书
  LETSENCRYPT_ACCOUNT_EMAIL: wespenre2@gmail.com


1 个赞