SendGrid との統合ができません

こんにちは、

SendGrid のメールサービスを使用しようとしていますが、ログに次のエラーが継続して表示されます。

Job exception: 535 Authentication failed: Bad username / password

何が間違っているのかわかりません。現在の設定は以下の通りです。

 DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
 DISCOURSE_SMTP_PORT: 587
 DISCOURSE_SMTP_USER_NAME: apiKey
 DISCOURSE_SMTP_PASSWORD: 'SG.xxxx.xxxxxx.xxxx'

また、Fresh install. Works. Sendgrid not sending emails - #5 by Ham の提案に従ってポート 2525 を使用してみましたが、これも機能しませんでした。

telnet を使用して接続は確立できます。

どなたかお手伝いいただけないでしょうか?私が何か間違っている可能性はありますか?

Discourse が稼働しているのと同じサーバーからですか?

愚問でしたらお詫びしますが、SendGrid のユーザー名は実際に apiKey でしょうか?

:thinking:

なぜそう聞いたかと言うと、アカウント名としてはあまり一般的ではないからです…

はい

いいえ、SendGrid には「ユーザー名」という概念はないと思います。私はこちらのドキュメントに従いました:discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub

もしかしたら私の理解が間違っているかもしれませんが、私の SendGrid アカウントにはユーザー名に関する情報は見当たりません。

彼らは独自の用語を使用していますが、本質的には標準的な SMTP サーバーに接続しているため、認証が必要です。

Teammates セクションへ移動してください - https://app.sendgrid.com/settings/teammates

そこにはメール送信が可能なアカウントの詳細が表示されます:

「Username」列の値が、Discourse の設定 DISCOURSE_SMTP_USER_NAME に入力する必要がある値です。

したがって、「Username」が SK2019 の場合、以下のような設定になります:

DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: SK2019
DISCOURSE_SMTP_PASSWORD: 'xxxx.xxxxxx.xxxx'

試してみましたが、うまくいきませんでした。SendGridのドキュメントではユーザー名にapiKeyを使用するよう記載されていますが、それでは動作しないようです。

SendGridチームに連絡してサポートを仰ぐべきかもしれません。

telnetを使用する際に apiKey を使用しましたか?

はい、How to send an Email with SMTP | SendGrid Docs | Twilio の手順に従って無事に動作しました!Discourse の設定で何が不足しているのかよくわかりません。

設定ファイルの4行が私のもの(上記)と同じですか?

SendGridのTeammatesページに表示されているものと一致する正しい DISCOURSE_SMTP_USER_NAME を使用していますか?

はい、ユーザー名は「Teammates」ページに表示されているもの、パスワードは私が生成したキー(telnetでもこのキーで動作します)で、他の2つのフィールドは完全に同じです。

Discourseのどのバージョンをお使いでしょうか?私はベータ版を使用していますが、それが原因ではないかと疑っています。

ともあれ、Mailgunへの切り替えを計画しています。今日試してみましたが、シームレスに動作しました(ただし費用は高めですが、現時点では他に選択肢がありません)。

参考までに、@Satwik_Kansal さん、SendGrid API のユーザー名は “apiKey” ではなく “apikey” です。問題なく動作しています。

私も同じ問題に直面しています。ここでの要点は何ですか?「apikey」を使用する(動作しない)か、チームメイトを追加する(空です)?

念のため申し上げますが、ドキュメントはこの点がかなり混乱を招くものであり、この問題を解決するために Google で検索する羽目になったのはこれが初めてではありません。

現在のドキュメントには以下のように記載されています:

SendGrid — 30 日間のトライアルで 4 万件のメール送信可能

SMTP サーバーアドレス?smtp.sendgrid.net
SMTP ユーザー名?      apikey
SMTP パスワード?       [SendGrid API キー]

編集:混乱を招いているのは、私のように「apikey」という文字列をそのまま自分の API キーに置き換えるものだと思い込んでいる人々だと思われます。実際には、この文字列は変更せずにそのままにしておくべきなのです!

驚きですよね?
これに戸惑った人は、試している人の99%に及んでいるでしょう :confused:

(当時の私も含めて)