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 »

Thanks for the update guide @blake! However, I seem to not have the mail-receiver.yml file in /var/discourse/containers/ for some reason.

root@nomadgate-community-eu:/var/discourse# sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
sed: can't read /var/discourse/containers/mail-receiver.yml: No such file or directory

For good measure checked typed ls to check what’s actually there:

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

Any idea why there’s no mail-receiver.yml file and what I can do about it? Mail Receiver seems to be working for my community, even without the file…

EDIT: Come to think of it, I don’t think I’ve ever set up “mail-receiver”. I’m using SendGrid’s inbound parse webhook feature, so why am I even seeing this error in my Discourse dashboard?

However, to make that work I am passing the API credentials as URL parameters like so: /admin/email/handle_mail?api_key=xxx&api_username=xxx — will this no longer work? And if so, is there any other way to keep the support for inbound messages 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 »