Actualizar mail-receiver a la versión de lanzamiento

Si llegaste aquí porque notaste este mensaje en tu Panel de Administración:

Hemos detectado una versión desactualizada de mail-receiver..

Estás en el lugar correcto.

Por favor, conecta vía SSH a tu servidor de Discourse y ejecuta los siguientes dos comandos para actualizar mail-receiver:

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

Para más detalles, continúa leyendo.

¿Por qué necesitamos actualizar mail-receiver?

Necesitamos actualizar mail-receiver a una versión más reciente que no utilice un método de autenticación de API obsoleto.

Cuando configuraste originalmente mail-receiver, se te solicitó crear un archivo containers/mail-receiver.yml que contenía un número de versión codificado:

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

Para recibir futuras actualizaciones sin tener que actualizar manualmente este número, puedes cambiar el número de versión a release en lugar de especificar una versión concreta.

Por favor, edita /var/discourse/containers/mail-receiver.yml para usar esta imagen base:

base_image: discourse/mail-receiver:release

Si lo deseas, puedes simplemente ejecutar este comando:

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

para editar el archivo por ti.

Luego puedes ejecutar:

/var/discourse/launcher rebuild mail-receiver

para actualizar a la última versión de mail-receiver.

21 Me gusta

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 Me gusta

Estoy de acuerdo: no veo ningún archivo containers/mail-receiver.yml en mi instalación de Discourse. Hasta ahora no he notado ningún efecto adverso.

@dltj ¿Tú también usas SendGrid o algo similar?

Aquí está el asunto: si no instalaste el receptor de correo, no necesitas actualizarlo.

2 Me gusta

Claro, pero estoy tratando de recopilar tanta información como sea posible, ya que podría haber cambios en las llamadas a la API basadas en parámetros de consulta, dependiendo del soporte de SendGrid u otros proveedores que puedas conectar para usar este endpoint.

3 Me gusta

No, no estoy usando SendGrid. Esta instalación de Discourse tiene varios años y, en su momento, escribí una función de AWS Lambda que utilizaba la API /admin/email/handle_mail para enviar correos entrantes a Discourse. Ese script de Lambda usaba Python 2.7, por lo que es necesario reescribirlo… probablemente sea el momento de ver qué opciones tengo ahora.

Curiosamente, el mensaje “Hemos detectado una versión desactualizada de mail-receiver…” ya no aparece en el panel de administración de mi Discourse. Vaya. Olvídenlo: el mensaje sigue ahí. Tal vez desapareció porque la instalación de Discourse no recibió mensajes entrantes en el punto final /admin/email/handle_mail durante unos días, pero sí lo hizo cuando envié el mensaje de prueba.

Acabo de verificarlo: el correo entrante a Discourse sigue funcionando.

1 me gusta

Correcto. Se agota el tiempo después de 24 horas si no ha recibido ningún mensaje.

2 Me gusta

Ah, ya veo. Así que la advertencia del panel no es por el uso de ‘mail-receiver’… sino por el uso de los ahora obsoletos api_key y api_username como parámetros de consulta en el punto final de la API. Vale… es bastante sencillo de solucionar. Gracias por las pistas.

3 Me gusta