使用 Helm 安装时设置 AWS SES 的问题

您好,

我最近使用 bitnami discourse helm chart 将 Discourse 安装到了我的 Kubernetes 集群中。我正在尝试让它与我目前配置的 AWS SES 一起工作,该配置适用于我运行的其他地址和服务,但我似乎无法让 Discourse 工作。

我查看了各种文档,似乎存在冲突的信息,即变量应该是 DISCOURSE_SMTP_NOTIFICATION_EMAIL 还是 DISCOURSE_NOTIFICATION EMAIL (Troubleshoot email on a new Discourse installdiscourse_docker/samples/standalone.yml at main · discourse/discourse_docker · GitHub),所以我只将两者都放在了额外的环境变量中。

smtp:
  enabled: true
  host: "email-smtp.us-west-2.amazonaws.com"
  port: "587"
  user: "XXXXX"
  password: "XXXXX"
  protocol: "tls"
  auth: ""
  existingSecret: ""

sidekiq:
  extraEnvVars:
    - name: DISCOURSE_SMTP_NOTIFICATION_EMAIL
      value: discourse@exampledomain.com
    - name: DISCOURSE_SMTP_DOMAIN
      value: exampledomain.com
    - name: DISCOURSE_NOTIFICATION_EMAIL
      value: discourse@exampledomain.com

discourse:
  extraEnvVars:
    - name: DISCOURSE_SMTP_NOTIFICATION_EMAIL
      value: discourse@exampledomain.com
    - name: DISCOURSE_SMTP_DOMAIN
      value: exampledomain.com
    - name: DISCOURSE_NOTIFICATION_EMAIL
      value: discourse@exampledomain.com

当我发送测试邮件时,我在“skipped”部分收到以下错误:

554 Transaction failed: Invalid domain name: '127.0.0.1'.

故障排除指南提到了以下内容:

默认的发件人地址基于安装域加上子域,所以如果你的 URL 是 `discourse.example.com`,它将是:

`noreply@discourse.example.com`

但如果你的邮件提供商期望的是:

`noreply@example.com`

…你可能会遇到问题!要解决此问题,请编辑 `app.yml` 并取消注释此 exec 行

但是,一旦进入容器,我就无法注释掉该行。

我正在将 Discourse 部署到 discourse.subdomain.exampledomain.com,并且我曾尝试使用 DISCOURSE_SMTP_DOMAIN 额外环境变量来设置 SMTP 域值,但这可能不起作用,因为在网站上的电子邮件配置设置中,域名显示为空。

我是否缺少某些值或配置才能使其工作?

谢谢!

您需要定义更多的变量来启动该容器。首先,您需要迁移数据库并预编译资源。您还需要一个域名,以及处理 https 证书的工具。

您应该从标准安装开始,然后在此基础上进行操作。一旦您以这种方式获得了可用的东西,就可以从中获得一些提示:

 ./launcher start-cmd app

抱歉,我应该说清楚。Discourse 容器都启动正常,我只是在邮件部分遇到问题。我应该还是按标准安装流程进行吗?

感谢您快速回复!

嗯。不知道。也许我误解了错误消息。

这看起来像是 Discourse 不知道它的主机名?但我也许说错了。