Mettre à jour mail-receiver vers la version stable

Si vous êtes arrivé ici parce que vous avez remarqué ce message sur votre tableau de bord d’administration :

Nous avons détecté une version obsolète de mail-receiver..

Vous êtes au bon endroit.

Veuillez vous connecter en SSH à votre serveur Discourse et exécuter les deux commandes suivantes pour mettre à jour mail-receiver :

sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
/var/discourse/launcher rebuild mail-receiver

Pour plus de détails, veuillez continuer la lecture.

Pourquoi devons-nous mettre à jour mail-receiver ?

Nous devons mettre à jour mail-receiver vers une version plus récente qui n’utilise pas une méthode d’authentification d’API obsolète.

Lorsque vous avez initialement configuré mail-receiver, on vous a demandé de créer un fichier containers/mail-receiver.yml contenant un numéro de version codé en dur :

base_image: discourse/mail-receiver:x.x.x

Afin de recevoir les mises à jour futures sans avoir à mettre à jour manuellement ce numéro, vous pouvez modifier le numéro de version pour qu’il soit release au lieu de spécifier une version précise.

Veuillez modifier /var/discourse/containers/mail-receiver.yml pour utiliser cette image de base :

base_image: discourse/mail-receiver:release

Si vous le souhaitez, vous pouvez simplement exécuter cette commande :

sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml

pour modifier le fichier à votre place.

Ensuite, vous pouvez exécuter :

/var/discourse/launcher rebuild mail-receiver

pour mettre à jour vers la dernière version de mail-receiver.

21 « J'aime »

Merci pour le guide de mise à jour, @blake ! Cependant, pour une raison quelconque, il semble que je n’aie pas le fichier mail-receiver.yml dans /var/discourse/containers/.

root@nomadgate-community-eu:/var/discourse# sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
sed: impossible de lire /var/discourse/containers/mail-receiver.yml : Aucun fichier ou dossier de ce type

Par précaution, j’ai tapé ls pour vérifier ce qui s’y trouve réellement :

root@nomadgate-community-eu:/var/discourse/containers# ls
app.yml  app.yml.save

Avez-vous une idée de pourquoi le fichier mail-receiver.yml n’existe pas et ce que je peux faire ? Le Récepteur de courriel semble fonctionner pour ma communauté, même sans ce fichier…

MODIF : En y réfléchissant, je ne pense pas avoir jamais configuré le « mail-receiver ». J’utilise la fonctionnalité de webhook d’analyse entrante de SendGrid, alors pourquoi vois-je cette erreur dans mon tableau de bord Discourse ?

Cependant, pour que cela fonctionne, je transmets les identifiants d’API sous forme de paramètres d’URL comme suit : /admin/email/handle_mail?api_key=xxx&api_username=xxx — cela ne fonctionnera-t-il plus ? Et si tel est le cas, existe-t-il une autre méthode pour conserver le support des messages entrants via SendGrid ?

2 « J'aime »

Je suis d’accord — je ne vois pas de fichier containers/mail-receiver.yml dans mon installation de Discourse. Jusqu’à présent, je ne constate aucun effet néfaste.

@dltj Utilises-tu également SendGrid ou un service similaire ?

Voici la chose : si vous n’avez pas installé le récepteur de courriel, vous n’avez pas besoin de le mettre à niveau.

2 « J'aime »

Bien sûr, mais j’essaie de rassembler le plus d’informations possible, car des modifications pourraient être apportées aux appels d’API basés sur les paramètres de requête, en fonction de la prise en charge par SendGrid ou d’autres fournisseurs que vous pouvez connecter pour utiliser ce point de terminaison.

3 « J'aime »

Non, je n’utilise pas SendGrid — cette installation de Discourse date de plusieurs années, et à l’époque, j’avais écrit une fonction AWS Lambda utilisant l’API /admin/email/handle_mail pour acheminer les courriels entrants vers Discourse. Ce script Lambda était écrit en Python 2.7, il est donc temps de le réécrire… probablement le moment de voir quelles sont mes options aujourd’hui.

Curieusement, le message “Nous avons détecté une version obsolète du récepteur de courriels…” n’apparaît plus sur mon tableau de bord d’administration Discourse. Étrange. Oubliez ça — le message est toujours là. Peut-être a-t-il disparu parce que l’installation de Discourse n’avait reçu aucun message entrant sur l’endpoint /admin/email/handle_mail depuis quelques jours, mais il l’a fait lorsque j’ai envoyé le message de test ?

Je viens de vérifier — la réception de courriels entrants vers Discourse fonctionne toujours.

1 « J'aime »

C’est exact. Il expire après 24 heures s’il n’a reçu aucun message.

2 « J'aime »

Ah, je vois. L’avertissement du tableau de bord ne concerne pas l’utilisation de ‘mail-receiver’… il s’agit du fait que j’utilise les paramètres api_key et api_username, désormais obsolètes, en tant que paramètres de requête pour le point de terminaison de l’API. D’accord… assez simple à corriger. Merci pour les indices.

3 « J'aime »