我已经查阅了与此事相关的所有文档,但无法解决问题。肯定有人在将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_domain
和API_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的“跳过”选项卡中检查时,我发现“跳过原因”是[发送者] 550不允许未经身份验证的发件人
- 所以我认为这是SendGrid的身份验证问题。我该如何解决这个问题?