Nicht in der Lage, mit SendGrid zu integrieren

Hallo,

ich versuche, den E-Mail-Dienst von SendGrid zu nutzen, bekomme aber ständig diesen Fehler in den Logs:

Job exception: 535 Authentication failed: Bad username / password

Ich bin mir nicht sicher, was ich falsch mache. Hier sieht meine Konfiguration so aus:

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

Ich habe es auch mit Port 2525 auf den Hinweis von Fresh install. Works. Sendgrid not sending emails - #5 by Ham hin versucht, aber das hat auch nicht funktioniert.

Ich kann eine Verbindung über Telnet herstellen.

Kann mir jemand bitte helfen? Habt ihr eine Idee, was ich falsch mache?

Von demselben Server, auf dem dein Discourse läuft?

Entschuldigung, falls das eine dumme Frage ist, aber ist dein SendGrid-Benutzername tatsächlich: apiKey?

:thinking:

Ich frage nur, weil es eine ungewöhnliche Wahl für einen Kontonamen ist…

Ja.

Nein, ich glaube nicht, dass es bei SendGrid das Konzept eines Benutzernamens gibt. Ich habe einfach der Dokumentation hier gefolgt: discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub

Ich könnte mich auch irren, aber ich sehe in meinem SendGrid-Konto keine Informationen zum Benutzernamen.

Sie verwenden eine andere Terminologie, aber du stellst dennoch eine Verbindung zu einem im Wesentlichen standardkonformen SMTP-Server her, der eine Authentifizierung erfordert.

Gehe zum Abschnitt Teammateshttps://app.sendgrid.com/settings/teammates

Dort siehst du die Kontodaten, die E-Mails versenden dürfen:

Der Wert in der Spalte „Username“ ist der, den du in der Discourse-Einstellung DISCOURSE_SMTP_USER_NAME eingeben musst.

Wenn der „Username“ also SK2019 lautet, hast du etwas wie:

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

Ich habe es versucht, aber es hat nicht funktioniert. Die Sendgrid-Dokumentation erwähnt, dass apiKey als Benutzername verwendet werden soll, aber das scheint nicht zu funktionieren.

Vielleicht sollte ich mich an das Sendgrid-Team wenden und um Hilfe bitten.

Haben Sie beim Verwenden von Telnet apiKey verwendet?

Ja, ich habe die Anweisungen unter How to send an Email with SMTP | SendGrid Docs | Twilio befolgt, und sie haben funktioniert! Ich bin mir nicht sicher, was mir bei der Discourse-Konfiguration fehlt.

Siehst du in deiner Konfigurationsdatei vier Zeilen, die so aussehen wie meine (oben)?

Mit dem korrekten DISCOURSE_SMTP_USER_NAME, der mit dem auf deiner Teampage bei SendGrid übereinstimmt?

Ja, der Benutzername ist der, der auf der Seite „Teammates

FWIW @Satwik_Kansal unser Sendgrid-API-Benutzername lautet “apikey” – nicht “apiKey”. Funktioniert einwandfrei.

Ich habe das gleiche Problem. Was ist die Kernaussage hier? “apikey” verwenden (funktioniert nicht) oder ein Teammitglied hinzufügen (es ist leer)?

Für die Aufzeichnung: Die Dokumentation macht dies ziemlich verwirrend, und dies ist nicht das erste Mal, dass ich mich gezwungen sehe, genau dieses Problem bei Google zu suchen, um die Lösung zu finden.

Die Dokumentation enthält derzeit:

SendGrid — 40.000 E-Mails in einer 30-Tage-Testversion

SMTP-Serveradresse? smtp.sendgrid.net
SMTP-Benutzername?      apikey
SMTP-Passwort?       [SendGrid API-Schlüssel]

EDIT: Was meiner Meinung nach die Leute verwirrt (wie mich), ist, dass sie denken, „apikey

Verrückt, oder?

Ich würde sagen, das hat 99 % der Leute, die es versuchen, verwirrt :confused:

(mich damals eingeschlossen)