与sendgrid smtp的讨论:[发件人] 550不允许未经身份验证的发件人

时间:2016-11-24 08:53:34

标签: email authentication smtp sendgrid discourse

我已经查看了我可以在这个问题上找到的每一个文档,并且无法弄清楚这一点。 必须是那些使用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重建了应用程序。

话语管理员界面显示以下设置:

enter image description here

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

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)

但是当我检查" Skipped"管理员电子邮件用户界面的标签,我看到"跳过原因"是[Sender] 550 Unauthenticated senders not allowed - 所以我认为这是SendGrid的身份验证问题。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

"未经许可的未经身份验证的发件人"是一个特定于SendGrid的错误,明确表示您的系统没有发送AUTH命令。因此,即使您设置了身份验证简单,也会覆盖某些内容,并且在连接到SendGrid时不会尝试进行身份验证。

答案 1 :(得分:0)

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

enter image description here