SendGrid との統合ができません

Hi,

I’m trying to use Sendgrid email service and keep getting this error in the logs

Job exception: 535 Authentication failed: Bad username / password

I’m not sure what I’m doing wrong, here’s how my configuration looks like

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

I’ve also tried to use port 2525 on the suggestion of Fresh install. Works. Sendgrid not sending emails , but that didn’t work either.

I’m able to establish a connection using telnet.

Can someone please help? Any idea what I could be doing wrong?

From the same server that your Discourse is on?

Apologies if this is a silly question but is your SendGrid username actually: apiKey

:thinking:

I only ask, as it’s an unusual choice of account name…

Yes

No, I don’t think there’s a concept of username in sendgrid, I just followed the documentation here discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub

I might be wrong also, but I don’t see any username info in my sendgrid account.

They use different terminology but you’re still connecting to what is essentially a standard SMTP server, which will require authentication.

Go to the Teammates section - https://app.sendgrid.com/settings/teammates

In there you will see the account details that are able to send email:

The value in the “Username” column is what you need to enter in the Discourse setting DISCOURSE_SMTP_USER_NAME

So if the “Username” was SK2019 then you’d have something like:

DISCOURSE_SMTP_ADDRESS: smtp.sendgrid.net
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: SK2019
DISCOURSE_SMTP_PASSWORD: 'xxxx.xxxxxx.xxxx'
「いいね!」 3

I tried that but didn’t work. The Sendgrid docs mention to use apiKey as username, but that doesn’t seem to be working.

Maybe I should reach out to the sendgrid team and seek their help.

Did you use apiKey when using telnet?

Yes, I followed instructions at How to Send an SMTP Email | SendGrid Documentation and they worked! Not sure what am I missing in discourse configuration.

Do the four lines in your config file look like mine (above)?

With the correct DISCOURSE_SMTP_USER_NAME that matches the one displayed in your Teammates page on SendGrid?

Yes, the username is the one displayed in the the Teammates page, the password is the key I generated (telnet works using this key), and other two fields are exactly the same.

May I know what version of discourse are you using, I’m using beta, I suspect that could be the issue.

Anyways, I’m planning to switching to mailgun, I tried it today, and it works seamlessly (though it’s expensive, but have no other options atm)

「いいね!」 2

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

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

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

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

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

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

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

「いいね!」 4

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

(当時の私も含めて)

「いいね!」 1