Tentez de valider avec Mailjet : fichier TXT ou entrée DNS requis

OK, donc j’utilise Mailjet pour le SMTP et je rencontre un problème de validation. D’abord, je ne peux pas valider facilement l’adresse e-mail individuelle noreply@discourse.example.com.

Je préférerais valider le domaine discourse.example.com, mais là, je me heurte à deux problèmes. Je pourrais le faire avec un fichier texte nommé spécifiquement, mais il semble que Discourse ne le permette pas (bien qu’à ce stade, je sois tenté de configurer le fichier nginx.conf pour renvoyer quelque chose à cette URL). Bon, peut-être le fichier DNS TXT ? Et là, je rencontre des difficultés car je gère le DNS du domaine example.com et on me demande d’ajouter une entrée pour essentiellement mailjet.discourse.example.com, qui est un sous-domaine, et je ne suis pas sûr de savoir comment le faire. J’utilise BIND 9.3 environ sur Ubuntu 16.04, donc quelques conseils seraient les bienvenus ? Je trouve des informations sur la façon d’ajouter une entrée TXT pour discourse.example.com, mais Mailjet dit : « Oublie ça, ça doit être mailjet_xxxxx.discourse.example.com », c’est-à-dire un sous-réseau, ce qui, je pense, implique des zones supplémentaires. Je ne suis pas un wizard DNS, mais je suis assez doué pour installer des choses complexes.

Mais pour l’instant, je suis complètement perdu après avoir essayé toutes sortes de choses, donc… de l’aide ? Je veux dire, la meilleure nouvelle possible serait que quelqu’un dise : « Bien sûr, tu peux mettre un fichier texte dans le répertoire racine de Discourse comme ceci… » :frowning:

Êtes-vous conscient de votre registrar de domaine ou de votre gestionnaire DNS ?

Vous devrez créer l’entrée DNS dans le gestionnaire DNS fourni par le registrar, ou si vous utilisez quelque chose comme Cloudflare, vous devrez créer des enregistrements DNS là-bas.

J’ai récemment rencontré ce problème. Voici ce qui a permis de le résoudre :

OK, je viens de faire fonctionner la méthode de validation par fichier TXT, même avec les « restrictions » de Discourse. Donc, si vous voulez éviter de toucher aux paramètres DNS (ce qui, eeeeeeeeee… pour moi est beaucoup plus effrayant que de toucher à un serveur web, bien que, bien sûr, votre expérience puisse varier).

Vous devrez pouvoir modifier votre fichier de configuration nginx pour votre installation Discourse. L’emplacement exact dépend de l’endroit (et avec quoi) vous avez installé Discourse. Dans mon cas, j’ai fait une installation bare-metal sans Docker. Je peux le trouver à /etc/nginx/conf.d/discourse.conf — votre expérience peut varier.

Dans ce fichier, il y aura un bloc location comme ceci :

 location / {
     ....
 }

où il y aura également plusieurs directives location imbriquées en interne.

Créez-en une nouvelle, également imbriquée ici (mais pas imbriquée dans un autre location !)

location /stupidfilename.txt {
   alias /var/www/stupidfilename.txt;
}

où stupidfilename.txt est le nom spécial du fichier qu’ils vous demandent d’ajouter, et où le CHEMIN (/var/www) est en dehors des fichiers Discourse mais accessible via les URLs en général sur le serveur. Ce qui rend cela fonctionnel, c’est que / est la racine pour Discourse, donc l’URL ressemblera à être sous votre Discourse à http://discourse.example.com/stupidfilename.txt (espaces ajoutés pour désactiver le lien erroné)

donc… placez le fichier en dehors de Discourse, configurez le location pour qu’il fasse l’alias vers ce fichier et redémarrez nginx.

et voilà…

(J’ai revu et édité cette réponse pour la rendre plus lisible, etc., depuis que je l’ai marquée comme ma solution)

Créer un enregistrement TXT est un jeu d’enfant par rapport à la création d’un fichier accessible publiquement dans Docker.