Cela ouvre la porte à toutes sortes de choses que nous pourrions potentiellement faire, comme rejeter du courrier ou répondre à une ancienne version d’un message. Mais c’est de l’imagination et des choses qui peuvent sembler une bonne idée mais ne le sont pas nécessairement ![]()
Je n’ai pas encore vu cela mentionné, alors assurez-vous de le gérer :
- Si l’e-mail inclut une section « Réponses précédentes », (faites quelque chose pour le rendre spécifique au destinataire)
Je ne suis pas sûr de ce que vous entendez par les réponses précédentes, et comment je devrais le rendre plus spécifique au destinataire ? Comment cela s’inscrit-il dans la stratégie plus large des Message-ID cohérents que nous avons détaillés ici ?
Si quelqu’un reçoit une section « Réponses précédentes », vous devez abandonner complètement les ID de message cohérents : vous combinez plusieurs publications en un seul e-mail ! Il n’y a pas de seul ID de message correct qui identifie de manière cohérente tout le contenu à travers plusieurs points de vue.
Modification : en fait, vous pouvez simplement les concaténer, je suppose ?
topic/1234/post/12345.also-12340-12339
De plus, cela rend les déclencheurs de spam mentionnés précédemment encore plus graves : vous ne changez pas seulement le lien de désabonnement sous le même ID de message, il y a des mots réels inclus et exclus dans différentes versions livrées avec le même ID de message.
Par Kane York via Discourse Meta le 02 août 2022 à 04:26 :
Si quelqu’un reçoit une section « Réponses précédentes », vous devez complètement
abandonner les identifiants de message cohérents : vous combinez plusieurs publications en
un seul e-mail !
Pouvez-vous développer un peu cela ? À quoi ressemble l’e-mail dans ce cas ? Avez-vous un exemple ?
Il n’y a pas de seul identifiant de message correct qui identifie tout le contenu
de manière cohérente à travers plusieurs points de vue.
Il suffit d’en choisir un, comme le premier, pour la plupart des usages. Si cet exemple est toujours une réponse.
Édition : en fait, vous pouvez simplement les concaténer, je suppose ?
topic/1234/post/12345.also-12340-12339
Je commence à penser que vous confondez une sorte de référence aux publications sources du forum Discourse avec l’identifiant de message. L’identifiant de message identifie les messages électroniques. Pour une réponse, l’identifiant de message dans In-Reply-To et References doit correspondre à l’message-id des messages électroniques antécédents pertinents. Lorsqu’une personne publie dans un sujet, chaque copie de cette publication envoyée par e-mail à ceux qui en demandent des copies par e-mail doit avoir le même identifiant de message.
De plus, cela rend les déclencheurs de spam mentionnés précédemment encore plus graves : vous ne changez pas seulement le lien de désabonnement sous le même identifiant de message, il y a de véritables mots inclus et exclus dans différentes versions livrées avec le même identifiant de message.
Il n’y a rien de mal à cela, s’il s’agit de « pieds de page administratifs » au bas de la publication.
Je ne suis pas tout à fait sûr que nous parlions de la même chose.
Aussi : de quels déclencheurs de spam spécifiques parlez-vous ici ? Parce que des e-mails « légèrement différents » sont envoyés tout le temps dans le monde réel.
Cordialement,
Cameron Simpson cs@cskk.id.au
Kane parle de cette option :
Les utilisateurs peuvent choisir de recevoir les réponses précédentes avec une grande quantité de détails ajoutés à la fin des e-mails.
Je suis heureux de considérer cela comme un bruit de fond pour l’instant et de le traiter de la même manière que nous traitons les liens de désabonnement uniques.
Je ne veux certainement pas bloquer davantage de progrès maintenant que nous avons un consensus.
(Quant à son apparence, je pense qu’elle est assez confuse, mais certains utilisateurs l’aiment)
Par Sam Saffron via Discourse Meta le 02 août 2022 à 05:29 :
[quote=“Cameron Simpson, post:51, topic:233499,
username:cameron-simpson”]
Pouvez-vous développer un peu cela ? À quoi ressemble l’e-mail dans ce
cas ? Avez-vous un exemple ?
[/quote]Kane parle de cette option :
Les utilisateurs peuvent choisir de recevoir les réponses précédentes avec une grande fidélité
ajoutée à la fin des e-mails.
Ah, merci.
Je suis heureux de considérer cela comme un bruit de fond pour l’instant et de le traiter de la même manière que les liens de désabonnement uniques.
Ce serait aussi mon inclination. À mon sens, cela correspond à l’objectif « l’intention originale de l’afficheur/auteur » de la RFC. Un bagage d’accompagnement, mais pas un message principal différent.
Cordialement,
Cameron Simpson cs@cskk.id.au
D’accord, procédons comme prévu. J’ai commencé à examiner les changements hier, en commençant par notre récepteur d’e-mails.
@cameron-simpson juste pour information, j’intègre cela à d’autres responsabilités que j’ai actuellement. Je serai en vacances la semaine prochaine, puis à nouveau pendant les deux premières semaines de septembre, donc cela pourrait prendre un peu de temps pour montrer de réels progrès ici. Soyez assuré que je garde cela à l’esprit et que je m’assurerai d’écrire des mises à jour régulières ici, merci beaucoup pour votre participation et vos contributions jusqu’à présent !
Par Martin Brennan via Discourse Meta le 02 août 2022 à 07:06 :
@cameron-simpson juste pour information, j’intègre cela à d’autres responsabilités que j’ai actuellement. Je serai en vacances la semaine prochaine, puis à nouveau pendant les deux premières semaines de septembre, donc cela pourrait prendre un peu de temps pour montrer une réelle progression ici. Soyez assuré que je garde cela à l’esprit et que je m’assurerai d’écrire des mises à jour régulières ici, merci beaucoup pour votre participation et vos contributions jusqu’à présent !
Merci,
Cameron Simpson cs@cskk.id.au
@cameron-simpson J’ai repris le travail sur ce sujet après mon retour de voyage, et je voulais juste obtenir des éclaircissements supplémentaires sur différents scénarios de References et In-Reply-To.
Scénario 1 : Lorsque l’on crée un message dans Discourse qui ne répond pas directement à un autre message, utilisons-nous simplement le Message-ID du sujet OP (Original Poster) que nous avons stocké dans la nouvelle colonne outbound_message_id pour References et In-Reply-To ?
Scénario 2 : Lorsqu’un message répond à plusieurs autres messages à la fois (ce qui peut arriver via des citations), à quel message faisons-nous référence pour In-Reply-To ? Et utilisons-nous tous les messages pour References ou seulement celui choisi pour In-Reply-To ? Inclusons-nous le Message-ID du message OP dans References ?
Scénario 3 : Similaire à ce qui précède, mais limitons-nous à un seul message auquel nous répondons. Si nous répondons au message B qui, à son tour, est une réponse au message A, In-Reply-To pointe-t-il simplement vers le message B et les références sont-elles dans l’ordre message A, message B (en se référant bien sûr toujours aux Message-ID via outbound_message_id sur le message) ? Continuons-nous la chaîne de réponses ou nous arrêtons-nous au premier parent pour References ?
Cela revient principalement à la façon dont nous interprétons cette citation de la RFC, et affecte principalement References : se limitent-elles aux réponses directes via citation ou autrement, ou incluent-elles toujours l’OP.
Note : Certaines implémentations analysent le champ « References: » pour afficher le « fil de la discussion ». Ces implémentations supposent que chaque nouveau message est une réponse à un seul parent et qu’elles peuvent donc remonter le champ « References: » pour trouver le parent de chaque message qui y est listé. Par conséquent, essayer de former un champ « References: » pour une réponse ayant plusieurs parents est déconseillé ; la manière de le faire n’est pas définie dans ce document.
Merci Cameron, je vais procéder avec ce que je pense être correct en attendant et je l’ajusterai en fonction de votre réponse.
Par Martin Brennan via Discourse Meta le 19 août 2022 à 03:48 :
@cameron-simpson J’ai repris le travail sur ce sujet après mon retour de voyage, et je voulais juste obtenir des clarifications supplémentaires sur différents scénarios de
ReferencesetIn-Reply-To.Scénario 1 : Lors de la création d’un message dans Discourse qui ne répond pas directement à un autre message, utilisons-nous simplement le
Message-IDde l’OP (Original Poster) du sujet, que nous avons stocké dans la nouvelle colonneoutbound_message_id, pourReferencesetIn-Reply-To?
J’ai peut-être des problèmes de terminologie. Pour l’OP d’un nouveau sujet, je m’attendrais à ce qu’il n’y ait pas de References ni de In-Reply-To, étant l’OP.
Pour un message dans un sujet existant qui ne cite pas un message précédent spécifique, ce qui est, je pense, ce que vous décrivez réellement, le Message-ID de l’OP seul dans chacun de References et In-Reply-To, exactement comme vous le décrivez.
Scénario 2 : Lorsqu’un message répond à plusieurs autres messages à la fois (ce qui peut arriver via des citations), quel message utilisons-nous pour
In-Reply-To?
[Relisant la RFC 5322…]
In-Reply-Todoit contenir lesMessage-IDde chacun des messages auxquels il répond.Referencesdoit être leReferencesdu parent(*) avec leMessage-IDdu parent ajouté.
Donc, In-Reply-To remonte à un seul message dans le fil. Plusieurs messages parents signifient plusieurs message-ids, mais il devrait s’agir uniquement des message-ids des messages parents immédiats.
References est destiné à retracer toute la chaîne de réponses de l’OP au parent(*) de ce message. Il est donc calculé comme le fil du parent, plus le message-id du parent.
(*) Lorsqu’il y a plus d’un parent : La RFC indique que comme les clients (lecteurs d’e-mails) s’attendent souvent à ce que References retrace un seul fil de réponses de l’OP au message, la RFC décourage explicitement la fusion de tous les References des parents. Au lieu de cela, vous devriez en choisir un seul. Ma préférence personnelle serait le premier parent cité, mais c’est clairement une décision politique : choisissez celui que vous jugez le plus utile, peut-être.
Scénario 3 : Similaire à ce qui précède, mais limitons-nous à un seul message auquel nous répondons. Si nous répondons au message B qui, à son tour, est une réponse au message A,
In-Reply-Topointe-t-il simplement vers le message B et ensuite les références doivent-elles être dans l’ordremessage A, message B(en se référant bien sûr toujours auxMessage-IDviaoutbound_message_idsur le message) ? Continuons-nous à remonter la chaîne de réponses ou nous arrêtons-nous au premier parent pourReferences?
In-Reply-To remonte exactement d’une couche. Donc, dans ce scénario, il ne contient que le Message-ID du message parent.
References est une chaîne de l’OP à ce message.
Cela dépend principalement de la façon dont nous interprétons cette citation de la RFC, et affecte principalement
References: sont-ils limités aux réponses directes via citation ou autrement, ou incluent-ils toujours également l’OP ?
Ils devraient toujours commencer par l’OP. Si tous les messages précédents ont fait cela, vous pouvez simplement ajouter le message-id du parent aux References du parent et obtenir gratuitement toute la chaîne.
Si vous traitez un message “hérité”, vous pourriez remonter l’arbre. Ou vous pourriez décider de faire cela à chaque fois de toute façon. Ou vous pourriez dire que les choses vont bien pour l’avenir, nous allons simplement récupérer les References du parent s’ils sont là. Cela dépend de ce que vous décidez de stocker dans votre base de données, je pense.
Je pense que tant que vous visez à ce que In-Reply-To soit la parenté immédiate et References une ligne vers l’OP, vous devriez être bon.
Cordialement,
Cameron Simpson cs@cskk.id.au
Oui, c’est bien ce que je décrivais, merci.
Merci, donc en gros, la réponse est simplement : choisir un seul message qui a été cité pour l’utiliser comme parent (qu’il soit cité en premier ou le message le plus récemment créé, il suffit d’en choisir un), l’utiliser pour In-Reply-To, et l’utiliser ainsi que ses parents jusqu’à l’OP pour References.
Compris, c’est logique.
Je pense que cela clarifie tout et que vos réponses étaient ce que j’attendais. Je voulais juste vérifier avant de commencer les tests manuels. Merci pour la réponse rapide ![]()
@cameron-simpson Je pense que j’ai réussi comme décrit, j’ai configuré mutt et les choses semblent se suivre correctement (bien que je ne sois pas sûr de la raison pour laquelle la ligne d’objet est omise dans le fil, et je ne suis pas non plus sûr de la façon de le configurer pour voir mes propres réponses envoyées dans le fil) :
Et voici comment Thunderbird représente le même fil (en fait, j’ai réalisé que Thunderbird ne montre pas non plus mes réponses dans le fil) :
Voici à quoi cela ressemble dans Gmail :
Les en-têtes sont ci-dessous, les identifiants de publication commencent à 91, donc la publication 1 == identifiant de publication 91.
Publication/Email 1
(Aucune référence ou en-réponse-à car c’est le premier e-mail)
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
Publication/Email 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
Publication/Email 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>
Publication/Email 4
Répond à la publication 2 et à la publication 3, mais nous utilisons la publication 3 comme parent pour la chaîne de références car nous devons en choisir une seule.
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
Publication/Email 5
Ceci répond directement à la publication 4, qui répond elle-même directement à la publication 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
Publication/Email 6
Réponse à une réponse que j’ai envoyée par e-mail, notez que j’ai conservé l’identifiant de message (étrange) généré par 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
Puis-je vous envoyer un MP maintenant pour que vous puissiez créer un compte sur mon site de test, et nous pourrons échanger des e-mails/réponses pour voir si cela correspond à ce que vous attendez ?
Par Martin Brennan via Discourse Meta le 22 août 2022 à 05:36 :
@cameron-simpson Je pense que j’ai réussi comme décrit, j’ai
mutt configuré et les choses semblent s’enchaîner correctement (bien que je ne sois pas
sûr de la raison pour laquelle la ligne d’objet est omise dans le fil, et je ne suis pas non plus sûr
comment le configurer pour voir mes propres réponses envoyées en ligne dans le fil) :Ça me semble bien.
L’objet est omis dans les réponses (sauf s’il change), ce qui permet de voir plus facilement où commence le fil suivant. Vous pouvez replier les fils si vous préférez.
Voir vos propres réponses nécessite d’avoir une copie de la réponse dans ce dossier. Le paramètre
$recordcontrôle cela.
The Mutt E-Mail ClientEt voici comment Thunderbird représente le même fil (en fait, j’ai réalisé que Thunderbird ne montre pas non plus mes réponses en ligne) :
C’est aussi bien à mon avis.
Voici à quoi cela ressemble dans Gmail :
C’est… assez peu compact
Les en-têtes sont ci-dessous, les ID de publication commencent à
91, donc la publication 1 == ID de publication 91.
[…]Ces en-têtes semblent tous corrects selon vos descriptions des relations de messages.
Je remarque que Discourse utilise
Reply-Toavec un identifiant distinctif,
probablement pour assembler les réponses par e-mail en fonction de l’adresse e-mail cible. Clairement, cela fonctionne. Si Discourse dérivait cela des en-têtesIn-Reply-Tode la réponse, vous pourriez utiliser une adresse plus stablePourrais-je vous envoyer un message privé maintenant pour que vous puissiez créer un compte sur mon
site de test, et nous pourrons échanger des e-mails/réponses pour
voir si cela correspond à ce que vous attendez ?Certainement !
Cordialement,
Cameron Simpson cs@cskk.id.au
Ceci est en fait utilisé pour déterminer si nous envoyons dans une catégorie ou un sujet,
et n’est pas vraiment utilisé autant que les Message-IDs, etc. pour In-Reply-To et References.
Merci, je vais envoyer le MP et une invitation par e-mail depuis mon site.
Nous avons eu pas mal d’échanges et cela semble fonctionner comme prévu, voici un exemple du fil de discussion dans Thunderbird :
@cameron-simpson, es-tu d’accord pour que j’intègre cela dans le cœur de Discourse maintenant ? Merci encore d’avoir effectué des tests.
Je pense que je veux examiner de plus près les Références - j’ai cru voir des bizarreries sur un message, et j’ai fait une réponse multiple par e-mail et cela n’a pas semblé être reconnu comme tel ? J’essaierai de regarder ce soir.
Ah oui, je vois maintenant votre dernier message. Qu’attendez-vous de Discourse lorsque vous répondez à 2 messages ? Je ne suis pas sûr que nous prenions en charge l’analyse des citations et leur attribution à plusieurs messages comme réponses provenant d’e-mails entrants. Merci d’avoir examiné de plus près les References. Si vous aviez votre propre instance Discourse et que vous vouliez tester cela ou que vous étiez simplement curieux de la logique, le code se trouve dans cette branche feature/the-phantom-email-thread, voir https://github.com/discourse/discourse/pull/17996. Il nécessite encore un peu de nettoyage.
Edit : J’ai trouvé le problème de réponse, je réponds sur le forum de test.
Par Martin Brennan via Discourse Meta le 23 août 2022 à 06:16 :
Ah oui, je vois maintenant votre dernier message. Qu’attendez-vous
de Discourse lorsque vous répondez à 2 messages ? Je ne suis pas sûr que nous
prenions en charge l’analyse des citations et leur attribution à plusieurs messages en tant que
réponses à partir d’e-mails entrants.
Je ne m’attendais pas à cela. Je m’attendais à ce que Discourse examine les
identifiants de message In-Reply-To, les associe aux messages où ils correspondent,
et en dérive la « réponse multiple ».
Cela dit, je ne sais même pas comment faire une réponse multiple sur le web (en e-mail,
c’est assez facile, du moins avec mutt). Je ne sais pas non plus comment vous représentez
les messages parents dans votre base de données. Vous n’analysez sûrement pas le texte du message lui-même ?
Merci d’avoir examiné de plus près
Referenceségalement. Si vous aviez votre
propre instance Discourse et que vous vouliez tester cela ou que vous étiez simplement curieux de
la logique, le code se trouve dans cette branche
feature/the-phantom-email-thread, voir
https://github.com/discourse/discourse/pull/17996. Il a encore besoin d’un
peu de nettoyage.
Merci, je vais y jeter un œil. Je dois m’asseoir et dessiner une image de notre discussion de test
et vérifier les différents en-têtes par rapport à celle-ci ; j’étais trop
distrait aujourd’hui.
Cordialement,
Cameron Simpson cs@cskk.id.au
J’ai ajouté quelques commentaires ici, mais mon cerveau s’arrête. En particulier, les commentaires sur add_identification_field_headers sont probablement malavisés - est-ce le code de secours/original lorsque ce nouveau mode expérimental n’est pas activé ? Les commentaires sur add_experimental_identification_field_headers sont plus pertinents.




