Impossible d'intégrer avec SendGrid

Bonjour,

J’essaie d’utiliser le service d’envoi d’e-mails SendGrid et je continue d’obtenir cette erreur dans les journaux :

Exception de tâche : 535 Échec de l'authentification : Nom d'utilisateur ou mot de passe incorrect

Je ne suis pas sûr de ce que je fais de mal. Voici à quoi ressemble ma configuration :

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

J’ai également essayé d’utiliser le port 2525 sur la suggestion de Fresh install. Works. Sendgrid not sending emails - #5 by Ham, mais cela n’a pas fonctionné non plus.

Je parviens à établir une connexion en utilisant telnet.

Quelqu’un peut-il s’il vous plaît aider ? Avez-vous une idée de ce que je pourrais faire de travers ?

Depuis le même serveur que celui sur lequel votre Discourse est installé ?

Toutes mes excuses si c’est une question idiote, mais votre nom d’utilisateur SendGrid est-il vraiment : apiKey ?

:thinking:

Je pose la question simplement parce que c’est un choix inhabituel pour un nom de compte…

Oui

Non, je ne pense pas qu’il y ait de notion de nom d’utilisateur dans SendGrid. J’ai simplement suivi la documentation ici : discourse/docs/INSTALL-email.md at main · discourse/discourse · GitHub

Je peux me tromper aussi, mais je ne vois aucune information sur le nom d’utilisateur dans mon compte SendGrid.

Ils utilisent une terminologie différente, mais vous vous connectez toujours à ce qui est essentiellement un serveur SMTP standard, ce qui nécessitera une authentification.

Allez dans la section Teammates - https://app.sendgrid.com/settings/teammates

Vous y verrez les détails du compte autorisés à envoyer des e-mails :

La valeur dans la colonne “Username” est ce que vous devez entrer dans le paramètre Discourse DISCOURSE_SMTP_USER_NAME.

Donc, si le “Username” était SK2019, vous auriez quelque chose comme :

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

J’ai essayé cela, mais cela n’a pas fonctionné. La documentation de SendGrid docs indique d’utiliser apiKey comme nom d’utilisateur, mais cela ne semble pas fonctionner.

Peut-être devrais-je contacter l’équipe de SendGrid et demander leur aide.

Avez-vous utilisé apiKey lors de l’utilisation de telnet ?

Oui, j’ai suivi les instructions sur How to send an Email with SMTP | SendGrid Docs | Twilio et elles ont fonctionné ! Je ne sais pas ce qui me manque dans la configuration de Discourse.

Les quatre lignes de votre fichier de configuration ressemblent-elles aux miennes (ci-dessus) ?

Avec le bon DISCOURSE_SMTP_USER_NAME correspondant à celui affiché sur votre page Équipe sur SendGrid ?

Oui, le nom d’utilisateur est celui affiché sur la page des coéquipiers, le mot de passe est la clé que j’ai générée (telnet fonctionne avec cette clé), et les deux autres champs sont exactement les mêmes.

Pourriez-vous me dire quelle version de Discourse vous utilisez ? J’utilise la version bêta, et je soupçonne que cela pourrait être le problème.

Quoi qu’il en soit, je prévois de passer à Mailgun. Je l’ai testé aujourd’hui et cela fonctionne parfaitement (même si c’est cher, mais je n’ai pas d’autres options pour le moment).

Pour information @Satwik_Kansal, notre nom d’utilisateur pour l’API Sendgrid est “apikey” et non “apiKey”. Tout fonctionne parfaitement.

Je rencontre le même problème. Quel est le résumé ici ? Utiliser “apikey” (ne fonctionne pas) ou ajouter un membre de l’équipe (c’est vide) ?

Pour la petite histoire, la documentation rend cela assez confus, et ce n’est pas la première fois que je me retrouve à chercher cette même question sur Google pour trouver la solution.

La documentation indique actuellement :

SendGrid — 40 000 e-mails sur un essai de 30 jours

Adresse du serveur SMTP ? smtp.sendgrid.net
Nom d'utilisateur SMTP ?      apikey
Mot de passe SMTP ?       [Clé API SendGrid]

MODIFICATION : Ce qui, je pense, prête à confusion, c’est que les gens (comme moi) pensent que “apikey” signifie qu’il faut y mettre leur clé API, alors qu’en réalité, il ne faut pas le toucher !

C’est fou, n’est-ce pas ?

J’imagine que cela a décontenancé 99 % des personnes qui ont essayé :confused:

(moi y compris à l’époque)