Y a-t-il des caractères à éviter dans le mot de passe SMTP ? Si oui, la documentation pourrait le mentionner.
Mon mot de passe initial n’a pas fonctionné et a entraîné une erreur. J’ai changé le mot de passe (en modifiant app.yml) puis j’ai reconstruit l’application. Après cela, j’ai pu recevoir l’e-mail « Confirmez votre nouveau compte ».
Le caractère suspect dans le mot de passe d’origine était : ]
Pour le nouveau mot de passe, j’ai laissé Mailgun le générer pour moi.
Les caractères spéciaux comme ] sont probablement à éviter. Mais étant donné la réponse de Jay ci-dessus, j’aurais pensé que cela fonctionnerait, tout comme l’inclusion de %.
Aviez-vous des guillemets dans votre mot de passe, par hasard ? Je pense que \" est l’un de ceux qu’il est impossible d’utiliser car il encadre le mot de passe, à moins que vous ne modifiiez app.yml pour ajouter une échappatoire \\.
Si ce n’est pas la réponse, alors il est probable que nous devions mettre à jour ce sujet de documentation pour indiquer quels caractères spéciaux éviter ! Ou mettre à jour l’installateur pour ajouter un avertissement ?
Sans regarder de plus près, je dirais de changer le mot de passe pour qu’il n’ait pas de caractères étranges ou de modifier app.yml manuellement et d’entourer le mot de passe de guillemets simples. discourse-setup est un outil assez rudimentaire qui n’est pas conçu pour toutes les situations.
J’ai mis à jour l’OP pour indiquer explicitement que le mot de passe ne peut pas inclure de caractères spéciaux. Est-ce à peu près ça ?
Travaillons à intégrer tout autre conseil dans le guide et supprimons toutes ces réponses. En parcourant, je ne suis pas très clair sur beaucoup d’entre elles. Par exemple, la toute première réponse suggère qu’une reconstruction était nécessaire après la mise à jour des paramètres SMTP, ce qui contredit le guide.
Lors de la configuration de SMTP avec un fournisseur externe (j’utilisais SendGrid), je ne recevais pas les e-mails d’inscription. L’exécution de discourse-doctor a identifié l’erreur : Raison : 550 L'adresse d'expéditeur ne correspond pas à une identité d'expéditeur vérifiée.
Bien que j’aie authentifié le domaine de premier niveau (example.com) pour l’envoi dans SendGrid, je n’avais pas encore authentifié le sous-domaine discourse (discourse.example.com), et SendGrid rejetait donc les appels API.
Bien que cela ne m’ait pris qu’environ 15 minutes à comprendre, je pense qu’il serait utile d’inclure un commentaire supplémentaire dans app.yml et le script d’installation qui clarifie cela afin de réduire les frictions pour les nouveaux utilisateurs installant Discourse à l’avenir. Une référence directe à la page de dépannage serait également utile.
Quelque chose comme :
# La plupart des fournisseurs SMTP exigeront un domaine authentifié ou une adresse e-mail authentifiée
# pour envoyer des e-mails. Veuillez vous assurer d'avoir authentifié votre domaine d'envoi
# (example.com), votre sous-domaine (discourse.example.com) et l'adresse e-mail `notifications`
# auprès de votre fournisseur SMTP avant d'enregistrer de nouveaux utilisateurs afin d'assurer la délivrabilité des e-mails.
#
# La commande `discourse-doctor` peut aider à tester votre configuration de messagerie.
# Voir : https://meta.discourse.org/t/troubleshoot-email-on-a-new-discourse-install
Le port 587 ne fonctionne pas pour Mailgun, mais le port 2525 fonctionne ? J’ai changé le port à 2525 dans app.yml mais cela ne fonctionne toujours pas ?
Juste pour information, depuis mars/avril 2025, DigitalOcean bloque les ports SMTP sur tous les droplets par défaut. Ils peuvent lever la restriction si vous déposez un ticket de support, mais cela semble être traité au cas par cas :
J’espère que cela évitera à d’autres de devenir fous à se demander pourquoi leurs e-mails n’étaient pas envoyés alors que tout semblait configuré correctement !