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

¡Gracias por la guía de actualización, @blake! Sin embargo, por alguna razón, no parece tener el archivo mail-receiver.yml en /var/discourse/containers/.

root@nomadgate-community-eu:/var/discourse# sed -i 's/mail-receiver:.*/mail-receiver:release/' /var/discourse/containers/mail-receiver.yml
sed: no se pudo leer /var/discourse/containers/mail-receiver.yml: No existe el archivo o el directorio

Por si acaso, ejecuté ls para ver qué hay realmente:

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

¿Tienes alguna idea de por qué no existe el archivo mail-receiver.yml y qué puedo hacer al respecto? Parece que Mail Receiver está funcionando para mi comunidad, incluso sin el archivo…

EDIT: Ahora que lo pienso, creo que nunca configuré “mail-receiver”. Estoy utilizando la función de webhook de análisis entrante de SendGrid, así que, ¿por qué estoy viendo este error en mi panel de control de Discourse?

Sin embargo, para que eso funcione, estoy pasando las credenciales de la API como parámetros de la URL de la siguiente manera: /admin/email/handle_mail?api_key=xxx&api_username=xxx — ¿esto dejará de funcionar? Y si es así, ¿hay alguna otra forma de mantener el soporte para mensajes entrantes a través de 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