Abre la puerta a todo tipo de cosas que podríamos hacer, como rechazar correo o responder a una versión antigua de un mensaje. Pero es imaginación y cosas que pueden sonar bien pero no lo son necesariamente ![]()
Aún no he visto que esto se mencione, así que asegúrate de manejarlo:
- Si el correo electrónico incluye una sección de “Respuestas anteriores”, (haz algo para que sea específico del destinatario)
No estoy seguro de a qué te refieres con las respuestas anteriores y cómo necesitaría hacerlo más específico para el destinatario. ¿Cómo encaja esto con la estrategia más amplia de Message-IDs consistentes que hemos detallado aquí?
Si alguien recibe una sección de “Respuestas anteriores”, debes renunciar por completo a los ID de mensaje consistentes: ¡estás combinando varias publicaciones en un solo correo electrónico! No existe un único ID de mensaje correcto que identifique todo el contenido de manera consistente en múltiples puntos de vista.
Editar: en realidad, supongo que puedes simplemente concatenarlos.
topic/1234/post/12345.also-12340-12339
Además, esto hace que los desencadenantes de spam mencionados anteriormente sean aún más graves: no solo estás cambiando el enlace para cancelar la suscripción bajo el mismo ID de mensaje, sino que hay palabras reales incluidas y excluidas en diferentes versiones entregadas con el mismo ID de mensaje.
Por Kane York vía Discourse Meta el 02Ago2022 04:26:
Si alguien recibe una sección de “Respuestas Anteriores”, debes renunciar por completo a los ID de mensaje consistentes: ¡estás combinando múltiples publicaciones en un solo correo electrónico!
¿Puedes explicar un poco más esto? ¿Cómo se ve el correo electrónico en este caso? ¿Tienes un ejemplo?
No existe un ID de mensaje único y correcto que identifique todo el contenido de manera consistente en múltiples puntos de vista.
Es suficiente elegir solo uno, como el primero, para la mayoría de los propósitos. si este ejemplo sigue siendo una respuesta.
Edición: en realidad, supongo que puedes simplemente concatenarlos.
topic/1234/post/12345.also-12340-12339
Empiezo a pensar que estás confundiendo algún tipo de referencia a las publicaciones de origen del foro de Discourse con el message-id. El message-id identifica los mensajes de correo electrónico. Para una publicación de respuesta, el message-id en In-Reply-To y References debe coincidir con el message-id de los mensajes de correo electrónico antecedentes relevantes. Cuando alguien publica en un tema, cada copia de esa publicación enviada por correo electrónico a quienes solicitan copias por correo electrónico debe tener el mismo message-id.
Además, esto hace que los desencadenantes de spam mencionados anteriormente sean aún más graves: no solo estás cambiando el enlace para cancelar la suscripción bajo el mismo ID de mensaje, sino que hay palabras reales incluidas y excluidas en diferentes versiones entregadas con el mismo ID de mensaje.
No hay nada de malo en eso, si se trata de “pies de página administrativos” al final de la publicación.
No estoy completamente seguro de que estemos hablando de lo mismo.
Además: ¿qué desencadenantes de spam específicos estás discutiendo aquí? Porque los mensajes de correo electrónico “ligeramente diferentes” salen todo el tiempo en el mundo real.
Saludos,
Cameron Simpson cs@cskk.id.au
Kane está hablando de esta opción:
Los usuarios pueden optar por recibir respuestas anteriores con una gran cantidad de detalles adjuntos al final de los correos electrónicos.
Estoy feliz de considerar esto como ruido de fondo por ahora y tratarlo de manera similar a como tratamos los enlaces de cancelación de suscripción únicos.
Ciertamente no quiero bloquear ningún progreso adicional ahora que tenemos consenso.
(En cuanto a cómo se ve, en mi opinión se ve bastante confuso, pero a algunos usuarios les gusta)
Por Sam Saffron vía Discourse Meta el 02Aug2022 05:29:
[quote=“Cameron Simpson, post:51, topic:233499,
username:cameron-simpson”]
¿Puedes explicar un poco más esto? ¿Cómo se ve el correo electrónico en este
caso? ¿Tienes un ejemplo?
[/quote]Kane está hablando de esta opción:
Los usuarios pueden optar por recibir respuestas anteriores con una gran cantidad de detalles
adjuntas al final de los correos electrónicos.
Ah, gracias.
Me complace considerar esto como radiación de fondo por ahora y tratarlo de manera similar a como tratamos los enlaces únicos para darse de baja.
Esa también sería mi inclinación. En mi opinión, encaja con el objetivo de “la intención original del publicador/autor” del RFC. Equipaje acompañante, pero no un mensaje central diferente.
Saludos,
Cameron Simpson cs@cskk.id.au
De acuerdo, procedamos según lo planeado. Comencé a investigar los cambios ayer, comenzando con nuestro receptor de correo electrónico.
@cameron-simpson solo como información, estoy integrando esto con otras responsabilidades que tengo actualmente. Estaré de vacaciones la próxima semana y luego nuevamente durante las primeras dos semanas de septiembre, por lo que puede llevar un tiempo mostrar un progreso real aquí. Tenga la seguridad de que tengo esto en mente y me aseguraré de escribir actualizaciones periódicas aquí, ¡muchas gracias por su participación y contribuciones hasta ahora!
Por Martin Brennan vía Discourse Meta el 02Ago2022 07:06:
@cameron-simpson solo como información, estoy combinando esto con otras responsabilidades que tengo actualmente. Estaré de vacaciones la próxima semana y luego de nuevo durante las dos primeras semanas de septiembre, por lo que puede llevar un tiempo mostrar un progreso real aquí. Tenga la seguridad de que tengo esto en mente y me aseguraré de escribir actualizaciones periódicas aquí, ¡muchas gracias por su participación y contribuciones hasta ahora!
Gracias,
Cameron Simpson cs@cskk.id.au
@cameron-simpson He vuelto a trabajar en esto después de regresar de mi viaje, y solo quería obtener una mayor aclaración sobre diferentes escenarios de References e In-Reply-To.
Escenario 1: Al crear una publicación dentro de Discourse que no responde directamente a otra publicación, ¿simplemente usamos el Message-ID del OP del tema que tenemos almacenado en la nueva columna outbound_message_id tanto para References como para In-Reply-To?
Escenario 2: Cuando una publicación responde a varias publicaciones a la vez (lo que puede suceder a través de citas), ¿a qué publicación usamos para In-Reply-To? ¿Y usamos todas para References o solo la única elegida para In-Reply-To? ¿Incluimos el Message-ID de la publicación OP en References en absoluto?
Escenario 3: Similar a lo anterior, pero mantengámoslo en una sola publicación a la que estamos respondiendo. Si estamos respondiendo a la publicación B, que a su vez es una respuesta a la publicación A, ¿In-Reply-To simplemente apunta a la publicación B y luego las referencias deben estar en el orden de publicación A, publicación B (por supuesto, siempre refiriéndose a los Message-ID a través de outbound_message_id en la publicación)? ¿Seguimos subiendo por la cadena de respuestas o nos detenemos en el primer padre para References?
Esto se reduce principalmente a cómo estamos interpretando esta cita de las RFC, y afecta principalmente a References: ¿se limitan solo a respuestas directas a través de citas o de lo contrario, o también incluyen siempre al OP?
Nota: Algunas implementaciones analizan el campo “References:” para
mostrar el “hilo de la discusión”. Estas implementaciones
asumen que cada nuevo mensaje es una respuesta a un solo padre y
por lo tanto, que pueden retroceder a través del campo “References:”
para encontrar el padre de cada mensaje listado allí. Por lo tanto,
se desaconseja intentar formar un campo “References:” para una respuesta que tenga múltiples padres; cómo hacerlo no se define en este documento.
Gracias Cameron, procederé con lo que creo que es correcto mientras tanto y haré ajustes según tu respuesta.
Por Martin Brennan vía Discourse Meta el 19 de agosto de 2022 03:48:
@cameron-simpson He vuelto a trabajar en esto después de regresar
de mi viaje, y solo quería obtener más aclaraciones sobre
diferentes escenarios deReferenceseIn-Reply-To.Escenario 1: Al crear una publicación dentro de Discourse que no responde directamente a otra publicación, ¿simplemente usamos el
Message-IDdel OP del tema que tenemos almacenado en la nueva columnaoutbound_message_idtanto paraReferencescomo paraIn-Reply-To?
Puede que tenga problemas de terminología aquí. Para el OP de un nuevo tema, esperaría
que no hubiera References ni In-Reply-To, al ser el OP.
Para una publicación en un tema existente que no cita una publicación anterior específica,
que creo que es lo que realmente estás describiendo, el Message-ID del OP
solo en cada uno de References e In-Reply-To, exactamente como describes.
Escenario 2: Cuando una publicación responde a varias publicaciones a la vez (lo que puede ocurrir a través de citas), ¿qué publicación usamos para
In-Reply-To?
[Releyendo RFC 5322 de nuevo…]
In-Reply-Todebe contener losMessage-IDde cada una de las publicaciones a
las que responde.Referencesdebe ser elReferencesdel padre(*) con elMessage-IDdel padre
añadido.
Por lo tanto, In-Reply-To retrocede solo un mensaje en el hilo. Múltiples
publicaciones padre significan múltiples message-ids, pero solo deben ser los
message-ids de las publicaciones padre inmediatas.
References está destinado a rastrear toda la cadena de respuestas desde el OP
hasta el padre(*) de esta publicación. Por lo tanto, se calcula como el hilo al
padre, más el message-id del padre.
(*) Cuando hay más de un padre: El RFC dice que, dado que los clientes
(lectores de correo) a menudo esperan que References rastree un solo hilo
de respuestas desde el OP hasta la publicación, el RFC desalienta explícitamente
la fusión de todos los References de los padres. En su lugar, deberías elegir solo
uno. Mi inclinación personal sería la primera publicación padre citada, pero
esa es claramente una decisión de política: elige la que creas más útil,
quizás.
Escenario 3: Similar a lo anterior, pero mantengámoslo en una sola
publicación a la que estamos respondiendo. Si respondemos a la publicación B, que a su vez
es una respuesta a la publicación A, ¿In-Reply-Toapunta simplemente a la publicación B
y luego las referencias deben estar en el orden depublicación A, publicación B(de
curso, siempre refiriéndose aMessage-IDs a través deoutbound_message_iden
la publicación)? ¿Seguimos subiendo por la cadena de respuestas o nos detenemos en el
primer padre paraReferences?
In-Reply-To retrocede exactamente una capa. Así que en este escenario contiene solo el Message-ID de la publicación padre.
References es una cadena desde el OP hasta este mensaje.
Esto se reduce principalmente a cómo estamos interpretando esta cita del RFC, y afecta principalmente a
References: ¿se limitan solo a respuestas directas a través de citas o de lo contrario, o también incluyen siempre al OP?
Siempre deben comenzar en el OP. Si todas las publicaciones anteriores han hecho esto, puedes simplemente adjuntar el message-id del padre a las References del padre y obtener toda la cadena gratis.
Si estás tratando con un mensaje “legado”, podrías retroceder en el árbol. O podrías decidir hacer eso siempre de todos modos. O podrías decir que las cosas van bien de ahora en adelante, simplemente tomaremos las References del padre si están ahí. Depende de lo que decidas almacenar en tu base de datos, creo.
Creo que mientras tu objetivo sea que In-Reply-To sea la paternidad inmediata
y References sea una línea de regreso al OP, estarás bien.
Saludos,
Cameron Simpson cs@cskk.id.au
Sí, esto es lo que estaba describiendo, gracias por eso.
Gracias, entonces, en esencia, la respuesta es simplemente: elige una sola publicación que se citó para usarla como padre (ya sea la primera citada o la publicación creada más recientemente, solo es importante elegir una), úsala para In-Reply-To, y úsala a ella y a sus padres hasta el OP para References.
Entendido, tiene sentido.
Creo que esto aclara todo y tus respuestas fueron lo que esperaba, quería simplemente verificar antes de comenzar las pruebas manuales. Gracias por la rápida respuesta ![]()
@cameron-simpson Creo que he conseguido que esto funcione como se describe, tengo mutt configurado y las cosas parecen enhebrarse correctamente (aunque no estoy seguro de por qué se omite la línea de asunto en el hilo, y tampoco estoy seguro de cómo configurarlo para ver mis propias respuestas enviadas en línea dentro del hilo):
Y así es como Thunderbird representa el mismo hilo (en realidad, me di cuenta de que Thunderbird tampoco muestra mis respuestas en línea):
Así es como se ve en Gmail:
Los encabezados están a continuación, los ID de las publicaciones comienzan en 91, por lo que la publicación 1 == ID de publicación 91.
Publicación/Correo electrónico 1
(Sin referencias ni en respuesta a, ya que es el primer correo electrónico)
From: Martin Brennan via The Email Threading Sandbox <notifications@cdckmartintesting.discoursemail.com>
Reply-To: The Email Threading Sandbox <incoming+3706c086cd36c6e37550c24f4e25c9b8@cdckmartintesting.discoursemail.com>
To: imaptest2@discourse.org
Message-ID: <discourse/post/91@discoursehosted.martin-brennan.com>
Subject: [The Email Threading Sandbox] [Royal Court] Threading topic 1 for
Publicación/Correo electrónico 2
From: Bizarro Martin via The Email Threading Sandbox <notifications@cdckmartintesting.discoursemail.com>
Reply-To: The Email Threading Sandbox <incoming+9ea955b74a04dc85f5504ad245636824@cdckmartintesting.discoursemail.com>
To: imaptest2@discourse.org
Message-ID: <discourse/post/92@discoursehosted.martin-brennan.com>
In-Reply-To: <discourse/post/91@discoursehosted.martin-brennan.com>
References: <discourse/post/91@discoursehosted.martin-brennan.com>
Subject: [The Email Threading Sandbox] [Royal Court] Threading topic 1 for
Publicación/Correo electrónico 3
From: Martin Brennan via The Email Threading Sandbox <notifications@cdckmartintesting.discoursemail.com>
Reply-To: The Email Threading Sandbox <incoming+410877b7f868b59945f3e3ea16570fc4@cdckmartintesting.discoursemail.com>
To: imaptest2@discourse.org
Message-ID: <discourse/post/93@discoursehosted.martin-brennan.com>
In-Reply-To: <discourse/post/91@discoursehosted.martin-brennan.com>
References: <discourse/post/91@discoursehosted.martin-brennan.com>
Publicación/Correo electrónico 4
Responde a la Publicación 2 y a la Publicación 3, pero usamos la Publicación 3 como padre para la cadena de referencias, ya que solo necesitamos elegir una.
Date: Mon, 22 Aug 2022 04:05:45 +0000
From: Bizarro Martin via The Email Threading Sandbox <notifications@cdckmartintesting.discoursemail.com>
Reply-To: The Email Threading Sandbox <incoming+0a63eba3765f58e709a2ca538ca2b926@cdckmartintesting.discoursemail.com>
To: imaptest2@discourse.org
Message-ID: <discourse/post/94@discoursehosted.martin-brennan.com>
In-Reply-To: <discourse/post/93@discoursehosted.martin-brennan.com>
References: <discourse/post/91@discoursehosted.martin-brennan.com>
<discourse/post/93@discoursehosted.martin-brennan.com>
Subject: [The Email Threading Sandbox] [Royal Court] Threading topic 1 for
Publicación/Correo electrónico 5
Esto responde directamente a la Publicación 4, que a su vez responde directamente a la Publicación 3.
Date: Mon, 22 Aug 2022 05:05:06 +0000
From: Martin Brennan via The Email Threading Sandbox <notifications@cdckmartintesting.discoursemail.com>
Reply-To: The Email Threading Sandbox <incoming+d66f675a0ce64fcaa2ba6b91e3112b05@cdckmartintesting.discoursemail.com>
To: imaptest2@discourse.org
Message-ID: <discourse/post/95@discoursehosted.martin-brennan.com>
In-Reply-To: <discourse/post/94@discoursehosted.martin-brennan.com>
References: <discourse/post/91@discoursehosted.martin-brennan.com>
<discourse/post/93@discoursehosted.martin-brennan.com>
<discourse/post/94@discoursehosted.martin-brennan.com>
Subject: [The Email Threading Sandbox] [Royal Court] Threading topic 1 for
Publicación/Correo electrónico 6
Respuesta a una respuesta que envié por correo electrónico, ten en cuenta que he mantenido el (extraño) Message-ID generado por Thunderbird 12d1ec8f-859c-2339-2c7d-9cb3310756a2@discourse.org.
Date: Mon, 22 Aug 2022 05:16:31 +0000
From: Martin Brennan via The Email Threading Sandbox <notifications@cdckmartintesting.discoursemail.com>
Reply-To: The Email Threading Sandbox <incoming+fb424977c7bd0c8146bdd7302dc35933@cdckmartintesting.discoursemail.com>
To: imaptest2@discourse.org
Message-ID: <discourse/post/97@discoursehosted.martin-brennan.com>
In-Reply-To: <12d1ec8f-859c-2339-2c7d-9cb3310756a2@discourse.org>
References: <discourse/post/91@discoursehosted.martin-brennan.com>
<discourse/post/93@discoursehosted.martin-brennan.com>
<discourse/post/94@discoursehosted.martin-brennan.com>
<discourse/post/95@discoursehosted.martin-brennan.com>
<12d1ec8f-859c-2339-2c7d-9cb3310756a2@discourse.org>
Subject: [The Email Threading Sandbox] [Royal Court] Threading topic 1 for
2022-08-22
¿Puedo enviarte un mensaje privado ahora para que te configures una cuenta en mi sitio de prueba, y podamos intercambiar correos electrónicos/respuestas para ver si esto coincide con lo que esperas?
Por Martin Brennan vía Discourse Meta el 22 de agosto de 2022 05:36:
@cameron-simpson Creo que lo he hecho funcionar como se describe, tengo
mutt configurado y las cosas parecen enhebrarse correctamente (aunque no estoy
seguro de por qué la línea de asunto se omite en el hilo, y tampoco estoy seguro
de cómo configurarlo para ver mis propias respuestas enviadas en línea dentro del hilo):Se ve bien a mi parecer.
El asunto se omite en las respuestas (a menos que cambie), lo que facilita ver dónde comienza el siguiente hilo. Puedes plegar hilos si
lo prefieres.Ver tus propias respuestas requiere tener una copia de la respuesta en esa
carpeta. La configuración$recordcontrola eso.
The Mutt E-Mail ClientY aquí es cómo Thunderbird representa el mismo hilo (en realidad, me di cuenta de que Thunderbird tampoco muestra mis respuestas en línea):
También se ve bien a mi parecer.
Aquí es como se ve en Gmail:
Eso es… bastante poco compacto
Las cabeceras están abajo, los IDs de publicación comienzan en
91, por lo que la publicación 1 == ID de publicación 91.
[…]Todas estas cabeceras parecen correctas según tus descripciones de las
relaciones de los mensajes.Noto que Discourse usa
Reply-Tocon un ID distintivo,
presumiblemente para unir las respuestas por correo electrónico basándose en la dirección de correo electrónico de destino. Claramente esto funciona. Si Discourse derivara eso de las cabecerasIn-Reply-Tode la respuesta, podrías usar una dirección más estable¿Podría enviarte un PM ahora para que te configure una cuenta en mi
sitio de pruebas, y podemos intercambiar correos electrónicos/respuestas para
ver si esto coincide con lo que esperas?¡Ciertamente!
Saludos,
Cameron Simpson cs@cskk.id.au
Esto se usa en realidad para determinar si estamos enviando a una Categoría o a un Tema, y no se usa tanto como los Message-IDs, etc. para In-Reply-To y References.
Gracias, enviaré el PM y una invitación por correo electrónico desde mi sitio.
Hemos tenido bastantes idas y venidas y parece que está funcionando como se esperaba, aquí tienes un ejemplo del hilo en Thunderbird:
@cameron-simpson ¿estás de acuerdo en que lo incorpore ahora al núcleo de Discourse? Gracias de nuevo por hacer algunas pruebas.
Creo que quiero revisar las Referencias un poco más de cerca. Pensé que había visto algunas rarezas en un mensaje y, al responder por correo electrónico varias veces, no pareció ser reconocido como tal. Intentaré echar un vistazo esta noche.
Ah, sí, ahora veo la última publicación que hiciste. ¿Qué esperas dentro de Discourse cuando respondes a 2 publicaciones? No estoy seguro de que admitamos el análisis de citas y su atribución a varias publicaciones como respuestas de correos electrónicos entrantes. Gracias por echar un vistazo más a References. Si tuvieras tu propia instancia de Discourse y quisieras probar esto o tuvieras curiosidad por la lógica, el código está en esta rama feature/the-phantom-email-thread, ver https://github.com/discourse/discourse/pull/17996. Todavía necesita un poco de limpieza.
Edición: Encontré el problema de la respuesta, respondiendo en el foro de prueba.
Por Martin Brennan vía Discourse Meta el 23 de agosto de 2022 06:16:
Ah, sí, ahora veo tu última publicación. ¿Qué esperas
dentro de Discourse cuando respondes a 2 publicaciones? No estoy seguro de que
admitamos el análisis de citas y la atribución a múltiples publicaciones como
respuestas de correos electrónicos entrantes.
No esperaba eso. Esperaba que Discourse mirara los
In-Reply-To message-ids, los asociara con las publicaciones donde coinciden y
derivara la “respuesta múltiple” de eso.
Dicho esto, ni siquiera sé cómo hacer una respuesta múltiple en la web (en correo electrónico
es bastante fácil, al menos con mutt). Tampoco sé cómo representas
las publicaciones padre en tu base de datos. Seguramente no analizas el texto del mensaje en sí.
Gracias por echar un vistazo más a
References. Si tuvieras tu
propia instancia de Discourse y quisieras probar esto o simplemente tuvieras curiosidad por
la lógica, el código está en esta rama
feature/the-phantom-email-thread, ver
https://github.com/discourse/discourse/pull/17996. Todavía necesita un
poco de limpieza.
Gracias, lo miraré. Necesito sentarme y dibujar un diagrama de nuestra discusión de prueba
y comparar las diversas cabeceras con él; estuve demasiado distraído hoy.
Saludos,
Cameron Simpson cs@cskk.id.au
Puse algunos comentarios aquí, pero mi cerebro se está apagando. En particular, los comentarios sobre add_identification_field_headers son probablemente erróneos: ¿es este el código de respaldo/original para cuando este nuevo modo experimental no está habilitado? Los comentarios sobre add_experimental_identification_field_headers son más importantes.




