与SendGrid SMTP交流:[发件人] 550未经身份验证的发件人不允许。

3

我已经查阅了与此事相关的所有文档,但无法解决问题。肯定有人在将Sendgrid用作Discourse博客的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显示这些设置:

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)

但是当我在管理员电子邮件UI的“跳过”选项卡中检查时,我发现“跳过原因”是[发送者] 550不允许未经身份验证的发件人 - 所以我认为这是SendGrid的身份验证问题。我该如何解决这个问题?


1
一切看起来都很好。请确认:1)您的API密钥有发送电子邮件的权限,2)您正在复制实际的API密钥(仅在创建时显示一次),而不是API密钥ID。 - bwest
2个回答

0

你是否已经在该API Key中启用了“邮件发送”功能?

enter image description here


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接