【问题标题】:Discourse with sendgrid smtp: [Sender] 550 Unauthenticated senders not allowed与 sendgrid smtp 的对话:[Sender] 550 Unauthenticated senders not allowed
【发布时间】:2017-04-08 11:32:34
【问题描述】:

我已经浏览了我能找到的关于这个问题的所有文档,但无法弄清楚。 必须有人将 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 重建应用程序。

discourse 管理 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 的身份验证问题。我该如何解决这个问题?

【问题讨论】:

  • 对我来说一切都很好。验证 1) 您的 API 密钥有权发送电子邮件,并且 2) 您正在复制实际的 API 密钥(创建时仅显示一次)而不是 API 密钥 ID。

标签: email authentication smtp sendgrid discourse


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 2017-05-14
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多