`enable_forwarded_emails` no se comporta como el reenvío de correo convencional

enable_forwarded_emails is a great feature for bringing existing conversations into Discourse, but for users who approach Discourse with a “Mailman-mind” - as many users on our instance do - this feature just doesn’t do what they’re expecting it to.

Within every email client I’ve used, forwarding an email intentionally excludes the original email address from the forward, and subsequent replies. Whereas with this feature, that original email address is included in the created post and subsequent replies.

If this feature isn’t enabled, then Discourse strips the actual forwarded email, which also doesn’t work for us.

My thought is there should be an alternative feature which doesn’t strip the forwarded email and posts it like so:

Thought you all should see this:

---------- Forwarded message ---------
From: Example Person <person@example.com>
Date: Wed, 13 Mar 2019 at 15:11
Subject: An email to be forwarded
To: <some_discourse_user@example.com>

The original email

This would be a lot like the result of the always_show_trimmed_content setting, but with the trimmed content automatically expanded (and therefore visible in email notifications).

@zogstrip what are your thoughts here?

With just a little bit of rejigging of the code you’ve already written for enable_forwarded_emails I think what I want to see would be relatively easy - and that’s rejigging I’m happy to do.

Perhaps the solution here is to create a new multiple-choice site setting, something like:

forwarded_emails_behaviour:

  • hide (default)
  • show (the behaviour I’m advocating for here)
  • create_replies (the existing enable_forwarded_emails behaviour)
9 Me gusta

I like that :+1:

PR at will :wink:

5 Me gusta

Me tomó un poco de tiempo, pero aquí está el PR:

8 Me gusta

Actualmente, esta configuración tiene las siguientes opciones disponibles:

¿Así que supongo que la opción “mostrar” se convirtió en “citar”?

Además, no termino de entender por qué la otra opción se llama “crear respuestas”. ¿Qué significa? (o: ¿qué hace?)

Sí, ya que ambas otras opciones “muestran” el correo reenviado, pero esta lo cita en la publicación original.

Lo que dice el :canned_food:! Intentará analizar el correo reenviado, luego crear un usuario temporal a partir del remitente original del correo reenviado, publicar el correo reenviado como el tema original y luego cualquier texto que incluya quien reenvía como respuesta a ese tema (al menos así es como recuerdo que funcionaba).

4 Me gusta

¡Aah, ahora lo entiendo! Es el texto que incluye el reenviador el que se convierte en la respuesta. ¡Pero eso es exactamente una respuesta! ¿Por qué dice crear respuestas?

Otra razón por la que la terminología es algo confusa: tanto “ocultar” como “citar” se refieren al texto reenviado, pero “crear respuestas” se refiere al comentario del reenviador sobre el texto reenviado. Así que quizás estas opciones podrían aclararse de alguna manera diciendo:

  • ocultar el correo electrónico reenviado
  • citar el correo electrónico reenviado
  • publicar el correo reenviado con respuestas

Mientras escribo, me pregunto si realmente funciona así la tercera opción. No creo que nunca se haya comportado así para nosotros, pero entonces, tampoco tenemos muchos correos reenviados, así que no estoy seguro. ¿Tiene siquiera sentido publicar el comentario del reenviador como una respuesta? ¿No debería aclararse de alguna manera que el correo reenviado fue publicado por el reenviador? Esto no queda claro en absoluto cuando parece que el reenviador responde al mismo.

3 Me gusta

Así que estoy usando la configuración de cita y definitivamente no funciona como se describe. Quizás todavía no entiendo el comportamiento previsto, pero esto parece bastante claro:

y esto no es lo que estoy obteniendo. Déjame ser más preciso sobre lo que estoy recibiendo: alguien reenvió un correo que comenzaba con una nota breve como “Mira esto” seguido del correo reenviado. El correo reenviado incluía texto y dos archivos PDF adjuntos. La publicación mostrada en el foro se veía así:

¡Mira esto!
Saludos,
Sara

document1.pdf
document2.pdf

Eso fue todo.

Así que el correo reenviado fue completamente eliminado, con la excepción de los archivos adjuntos. Pude recuperarlo manualmente e incluso comenzaba con ---------- Mensaje reenviado ---------, por lo que identificarlo no podría haber sido más fácil…

Hmm, me pregunto si los archivos adjuntos están causando problemas aquí. Así es como aparecen (correctamente) para mí: https://discourse-dev.itsre-apps.mozit.cloud/t/fwd-email-to-site-feedback-support/24

3 Me gusta

Bien, eso se ve exactamente como esperaba. Es bueno ver que funciona, al menos en ciertas circunstancias. Pero, ¿tu correo incluía un archivo adjunto? Si no es así, parece plausible que Discourse se confunda con (ciertos?) archivos adjuntos.

Sigo teniendo problemas con que los correos reenviados no se muestren. Dado que tengo al menos un correo con archivos adjuntos que se renderizó correctamente, mi hipótesis ahora es que esto tiene que ver con si la persona que reenvió el correo agregó algo al mensaje o no. Por lo que puedo ver, los correos reenviados sin agregar texto alguno encima del mensaje reenviado se renderizaron correctamente, pero si el reenviador agregó algo como “FYI”, solo se incluyen los archivos adjuntos en la publicación, pero no el texto del correo reenviado.

En otras palabras, este ejemplo sigue sin funcionar (porque incluye “Pensé que todos deberían ver esto:”):

En lugar del resultado anterior, este correo se renderizaría como:

Pensé que todos deberían ver esto:

Y nada más.

¿Podría alguien confirmar si este problema es específico de mi instancia o si también existe en otros lugares?

Por favor, revisen en particular los correos con archivos adjuntos (por ejemplo, un archivo PDF), ya que es posible que el problema solo ocurra cuando se agrega texto Y hay un archivo adjunto.

También sigo confundido sobre qué hacen estas diferentes etiquetas/funciones. Estoy intentando configurar el correo entrante para usarlo con el Plugin de Tickets :tickets:, pero estoy obteniendo un comportamiento inconsistente.

Siento que el comportamiento predeterminado debería ser que todo lo que se reenvía se convierta en una publicación del usuario (en espera o regular) que creó el mensaje. La razón por la que se está reenviando parece ser, en la mayoría de los casos, que alguien que recibió el mensaje consideró que sería mejor abordarlo en Discourse, por lo que parece más apropiado que el tema lo inicie el autor del correo, no quien lo reenvía.

(Pero quizás mis casos de uso son realmente casos extremos…)

Debería funcionar así cuando configures enable_forwarded_emails en create_replies. El correo reenviado será la primera publicación y se generará una respuesta si quien reenvió escribió algo. De lo contrario, se creará una pequeña publicación de acción para que quede claro quién reenvió la primera publicación.

2 Me gusta

Vale, creo que finalmente lo estoy entendiendo:

Si create_replies es el valor elegido para la configuración del sitio forwarded emails behaviour, entonces el mensaje original se convierte en la publicación inicial del tema, y cualquier cosa escrita en el correo electrónico por encima del mensaje reenviado se convierte en una respuesta al tema debajo del mensaje de terceros. :confused:

P: ¿Alguno de los otros valores de esta configuración del sitio, es decir, hide o quote, solo procesa el mensaje original de terceros y nada más?

Me pregunto si el intento de separar estas “create replies” podría ser la causa de algunos errores extraños que he estado viendo al enviar cosas desde un cliente de Microsoft Outlook.

PD: Me pregunto si esta configuración merecería una entrada de FAQ/cómo hacer, enlazada desde el texto de descripción debajo de la configuración del sitio. Quizás sea solo yo, pero rara vez he estado tan confundido con una configuración de Discourse en los últimos 7 años. O quizás solo necesito más :coffee: :smile:

No. Obtendrás un pequeño post de acción cuando no haya texto antes del mensaje reenviado.

Creo que esta característica todavía está marcada como experimental y hay una buena razón para ello. Los correos electrónicos suelen reenviarse en línea. Esto hace que sea bastante difícil extraer el correo reenviado, porque cada cliente reenvía los encabezados del correo original de manera diferente. Algunos incluso ocultan la dirección de correo del encabezado From original o utilizan encabezados localizados.

Debería funcionar mucho mejor cuando los correos electrónicos se reenvían como adjuntos en lugar de en línea (estoy 99% seguro de que Discourse lo admite).

1 me gusta

Estoy de acuerdo en que sería una forma mucho más limpia de garantizar un procesamiento correcto. Me pregunto por qué no puedo lograr que Discourse procese los adjuntos cuando lo hago. (El contenido del adjunto reenviado aparece en el contenido sin procesar etiquetado para la publicación, pero solo se muestra el «comentario», no el original reenviado. De nuevo, al menos con MS Outlook; tendré que probar con otros clientes.)

1 me gusta

¿Quizás no se implementó después de todo? Aún no he revisado el código. :blush:
Por favor, avísame si funciona con otros clientes.

1 me gusta

Los mensajes reenviados en línea se están recortando, con ambos modos quote y create_replies habilitados.

¿Alguna sugerencia?

Mensaje original (algunas cabeceras omitidas):

De: Jeffrey Lastname <jeff@myemail.us>
Para: test-cat@example.org
Asunto: Fwd: ¡Gracias por tu apoyo!
X-Mailer: MailMate (1.14r5745)
Tipo de contenido: text/plain; format=flowed

Algun texto de muestra realmente largo.

Mensaje reenviado:

> De: Equipo de Donaciones <giving@example2.org>
> Para: jeff@myemail.us
> Asunto: ¡Gracias por tu apoyo!
>
> Estimado Jeffrey,
>
> Nuestro más sincero agradecimiento por tu donación al Proyecto Ejemplo, 
> especialmente ahora. Juntos escribiremos el futuro.

Mensaje en el foro (igual para ambos modos):

Algun texto de muestra realmente largo.

Mensaje reenviado:

Enviar el mensaje como adjunto tampoco parece funcionar. Los archivos adjuntos eml son rechazados. Si los archivos adjuntos eml están autorizados, entonces en el modo “create_replies”, se adjunta el archivo eml y el visitante del foro tiene la opción de descargarlo.

¿Hay alguna manera de que las notificaciones por correo electrónico muestren el mensaje de correo reenviado?

Con

  • forwarded_emails_behaviour establecido en “quote” y

  • always_show_trimmed_content activado,

nuestro sitio de Discourse (2.6.0, estable) muestra el correo reenviado exactamente como uno desearía, una vez que hago clic en los tres puntos:

Sin embargo, la notificación por correo electrónico omite por completo el correo reenviado:

1 me gusta