こんにちは、
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 を使用して接続は確立できます。
どなたかお手伝いいただけないでしょうか?私が何か間違っている可能性はありますか?
Richie
(Richie Rich)
2
Discourse が稼働しているのと同じサーバーからですか?
愚問でしたらお詫びしますが、SendGrid のユーザー名は実際に apiKey でしょうか?

なぜそう聞いたかと言うと、アカウント名としてはあまり一般的ではないからです…
はい
いいえ、SendGrid には「ユーザー名」という概念はないと思います。私はこちらのドキュメントに従いました:discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub
もしかしたら私の理解が間違っているかもしれませんが、私の SendGrid アカウントにはユーザー名に関する情報は見当たりません。
Richie
(Richie Rich)
4
彼らは独自の用語を使用していますが、本質的には標準的な 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チームに連絡してサポートを仰ぐべきかもしれません。
Richie
(Richie Rich)
6
telnetを使用する際に apiKey を使用しましたか?
Richie
(Richie Rich)
8
設定ファイルの4行が私のもの(上記)と同じですか?
SendGridのTeammatesページに表示されているものと一致する正しい DISCOURSE_SMTP_USER_NAME を使用していますか?
はい、ユーザー名は「Teammates」ページに表示されているもの、パスワードは私が生成したキー(telnetでもこのキーで動作します)で、他の2つのフィールドは完全に同じです。
Discourseのどのバージョンをお使いでしょうか?私はベータ版を使用していますが、それが原因ではないかと疑っています。
ともあれ、Mailgunへの切り替えを計画しています。今日試してみましたが、シームレスに動作しました(ただし費用は高めですが、現時点では他に選択肢がありません)。
参考までに、@Satwik_Kansal さん、SendGrid API のユーザー名は “apiKey” ではなく “apikey” です。問題なく動作しています。
ivan12
(IvanS)
11
私も同じ問題に直面しています。ここでの要点は何ですか?「apikey」を使用する(動作しない)か、チームメイトを追加する(空です)?
misterjtc
(Jordan Cook)
12
念のため申し上げますが、ドキュメントはこの点がかなり混乱を招くものであり、この問題を解決するために Google で検索する羽目になったのはこれが初めてではありません。
現在のドキュメントには以下のように記載されています:
SendGrid — 30 日間のトライアルで 4 万件のメール送信可能
SMTP サーバーアドレス?smtp.sendgrid.net
SMTP ユーザー名? apikey
SMTP パスワード? [SendGrid API キー]
編集:混乱を招いているのは、私のように「apikey」という文字列をそのまま自分の API キーに置き換えるものだと思い込んでいる人々だと思われます。実際には、この文字列は変更せずにそのままにしておくべきなのです!
Richie
(Richie Rich)
13
驚きですよね?
これに戸惑った人は、試している人の99%に及んでいるでしょう 
(当時の私も含めて)