3

我已经浏览了我能找到的关于这个问题的每一点文档,但无法弄清楚。肯定有人将 Sendgrid 作为 SMTP 用于讨论博客,但我不知道怎么做

这是我的 app.yml 设置:

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en
  UNICORN_WORKERS: 3
  DISCOURSE_DEVELOPER_EMAILS: 'admin@my_domain.com'
  DISCOURSE_HOSTNAME: 'my_domain.com'
  DISCOURSE_RELATIVE_URL_ROOT: /forum

  ## TODO: The mailserver this Discourse instance will use
  DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: apikey
  DISCOURSE_SMTP_PASSWORD: API_KEY
  DISCOURSE_SMTP_ENABLE_START_TLS: true

显然my_domainAPI_KEY被替换为适当的值。我已经三次检查这些事情是否正确。我已经多次重建了应用程序launcher rebuild app

话语管理 UI 显示以下设置:

在此处输入图像描述

但是,当我尝试发送任何电子邮件时,我会收到一个弹出窗口,上面写着:

There was a problem sending the test email. Please double-check your mail settings, verify that your host is not blocking mail connections, and try again.

服务器上的实际日志不是很有帮助:

Sent mail to test@my_email.com (91.2ms)
Completed 422 Unprocessable Entity in 287ms (Views: 0.2ms | ActiveRecord: 0.4ms)

但是当我检查管理电子邮件 UI 的“跳过”选项卡时,我看到“跳过原因”是[Sender] 550 Unauthenticated senders not allowed- 所以我认为这是 SendGrid 的身份验证问题。我该如何解决这个问题?

4

2 回答 2

0

您是否为该 API 密钥启用了“邮件发送”?

在此处输入图像描述

于 2017-03-20T13:29:18.837 回答
0

“不允许未经身份验证的发件人”是特定于 SendGrid 的错误,明确表示您的系统未发送 AUTH 命令。因此,即使您设置了身份验证明文,也有一些东西会覆盖它,并且在连接到 SendGrid 时不会尝试进行身份验证。

于 2016-11-30T00:24:56.190 回答