Apre il la porta a tutti i tipi di cose che potremmo potenzialmente fare, come rifiutare la posta o rispondere a una vecchia versione di un messaggio. Ma è immaginazione e cose che potrebbero sembrare una buona idea ma non lo sono necessariamente ![]()
Non ho ancora visto menzionato questo, quindi assicurati di gestirlo:
- Se l’email include una sezione “Risposte precedenti”, (fai qualcosa per renderla specifica per il destinatario)
Non sono sicuro di cosa intendi con le risposte precedenti e come dovrei renderle più specifiche per il destinatario? Come si inserisce nella strategia più ampia di Message-ID coerenti che abbiamo dettagliato qui?
Se qualcuno riceve una sezione “Risposte precedenti”, devi abbandonare completamente gli ID dei messaggi coerenti: stai combinando più post in una singola email! Non esiste un singolo ID del messaggio corretto che identifichi tutti i contenuti in modo coerente tra più punti di vista.
Modifica: in realtà puoi semplicemente concatenarli, immagino?
topic/1234/post/12345.also-12340-12339
Inoltre, questo rende ancora più gravi i trigger di spam menzionati in precedenza: non stai solo cambiando il link di annullamento dell’iscrizione con lo stesso ID del messaggio, ci sono parole effettivamente incluse ed escluse in diverse versioni consegnate con lo stesso ID del messaggio.
Di Kane York tramite Discourse Meta alle 02Ago2022 04:26:
Se qualcuno riceve una sezione “Risposte precedenti”, devi completamente
rinunciare agli ID dei messaggi coerenti: stai combinando più post in
una singola email!
Puoi elaborare un po’ su questo? Come si presenta l’email in questo caso? Hai un esempio?
Non esiste un singolo ID del messaggio corretto che identifichi tutti i contenuti
in modo coerente tra più punti di vista.
È sufficiente sceglierne uno, ad esempio il primo, per la maggior parte degli scopi. se questo esempio è ancora una risposta.
Modifica: in realtà puoi semplicemente concatenarli, suppongo?
topic/1234/post/12345.also-12340-12339
Sto iniziando a pensare che tu stia confondendo un qualche tipo di riferimento ai post sorgente del forum Discourse con l’ID del messaggio. L’ID del messaggio identifica i messaggi di posta elettronica. Per un post di risposta, l’ID del messaggio in In-Reply-To e References dovrebbe corrispondere all’ID del messaggio dei messaggi email antecedenti pertinenti. Quando qualcuno pubblica in un argomento, ogni copia di quel post inviata via email a coloro che richiedono copie via email dovrebbe avere lo stesso ID del messaggio.
Inoltre, questo rende ancora più gravi i trigger di spam menzionati in precedenza: non stai solo cambiando il link di annullamento dell’iscrizione sotto lo stesso ID del messaggio, ci sono parole effettive incluse ed escluse in diverse versioni consegnate con lo stesso ID del messaggio.
Non c’è niente di male in questo, se si tratta di “piè di pagina amministrativi” in fondo al post.
Non sono del tutto sicuro che stiamo parlando della stessa cosa.
Inoltre: di quali specifici trigger di spam stai parlando qui? Perché messaggi di posta elettronica “leggermente diversi” vengono inviati continuamente nel mondo reale.
Saluti,
Cameron Simpson cs@cskk.id.au
Kane sta parlando di questa opzione:
Gli utenti possono scegliere di ricevere risposte precedenti con una grande quantità di fedeltà aggiunta alla fine delle email.
Sono felice di considerare questo come rumore di fondo per ora e trattarlo in modo simile a come trattiamo i link di annullamento dell’iscrizione univoci.
Certamente non voglio bloccare ulteriori progressi ora che abbiamo un consenso.
(per quanto riguarda l’aspetto, secondo me è piuttosto confuso, ma ad alcuni utenti piace)
Di Sam Saffron tramite Discourse Meta il 02Ago2022 05:29:
[quote=“Cameron Simpson, post:51, topic:233499,
username:cameron-simpson”]
Puoi elaborare un po’ su questo? Come appare l’email in questo
caso? Hai un esempio?
[/quote]Kane sta parlando di questa opzione:
Gli utenti possono scegliere di ricevere risposte precedenti con un’elevata fedeltà
aggiunte alla fine delle email.
Ah, grazie.
Sono felice di considerare questo come rumore di fondo per ora e trattarlo in modo simile a come trattiamo i link univoci di annullamento dell’iscrizione.
Anche questa sarebbe la mia inclinazione. Secondo me si adatta all’obiettivo “l’intento originale del poster/autore” dall’RFC. Bagaglio di accompagnamento, ma non un messaggio centrale diverso.
Saluti,
Cameron Simpson cs@cskk.id.au
Concordo, procediamo come previsto. Ho iniziato a esaminare le modifiche ieri, a partire dal nostro ricevitore di email.
@cameron-simpson solo per tua informazione, sto integrando questo con altre responsabilità che ho attualmente. Sarò in ferie la prossima settimana e poi di nuovo nelle prime due settimane di settembre, quindi potrebbe volerci un po’ di tempo per mostrare progressi reali qui. Ti assicuro che tengo questo a mente e mi assicurerò di scrivere aggiornamenti regolari qui, grazie mille per la tua partecipazione e i tuoi contributi finora!
Di Martin Brennan tramite Discourse Meta il 02Ago2022 07:06:
@cameron-simpson solo per tua informazione, sto integrando questo con altre responsabilità che ho attualmente. Sarò in ferie la prossima settimana e poi di nuovo nelle prime due settimane di settembre, quindi potrebbe volerci un po’ di tempo per mostrare progressi reali qui. Vi assicuro che tengo a mente questo aspetto e mi assicurerò di scrivere aggiornamenti regolari qui, grazie mille per la vostra partecipazione e i vostri contributi finora!
Grazie,
Cameron Simpson cs@cskk.id.au
@cameron-simpson Ho ricominciato a lavorare su questo dopo essere tornato dal mio viaggio e volevo solo avere ulteriori chiarimenti su diversi scenari di References e In-Reply-To.
Scenario 1: Quando si crea un post all’interno di Discourse che non risponde direttamente a un altro post, utilizziamo semplicemente il Message-ID dell’OP dell’argomento che abbiamo memorizzato nella nuova colonna outbound_message_id sia per References che per In-Reply-To?
Scenario 2: Quando un post risponde a più post contemporaneamente (cosa che può accadere tramite citazioni), a quale post ci riferiamo per In-Reply-To? E li usiamo tutti per References o solo quello singolo scelto per In-Reply-To? Includiamo il Message-ID del post OP in References?
Scenario 3: Simile a quanto sopra, ma limitiamoci a un singolo post a cui stiamo rispondendo. Se stiamo rispondendo al post B che a sua volta è una risposta al post A, In-Reply-To punta semplicemente al post B e poi i riferimenti dovrebbero essere nell’ordine post A, post B (ovviamente riferendosi sempre ai Message-ID tramite outbound_message_id sul post)? Continuiamo a salire nella catena di risposte o ci fermiamo al primo genitore per References?
Questo si riduce principalmente a come stiamo interpretando questa citazione dall’RFC, e influisce principalmente su References: si limitano solo alle risposte dirette tramite citazione o altro, o includono sempre anche l’OP.
Nota: Alcune implementazioni analizzano il campo “References:” per visualizzare il “filo della discussione”. Queste implementazioni presuppongono che ogni nuovo messaggio sia una risposta a un singolo genitore e quindi che possano risalire all’indietro attraverso il campo “References:” per trovare il genitore di ogni messaggio elencato lì. Pertanto, si sconsiglia di tentare di formare un campo “References:” per una risposta che ha più genitori; come farlo non è definito in questo documento.
Grazie Cameron, nel frattempo procederò con quello che penso sia corretto e apporterò modifiche in base alla tua risposta.
Di Martin Brennan tramite Discourse Meta alle 19:08 del 19 agosto 2022:
@cameron-simpson Ho ripreso a lavorare su questo dopo essere tornato dal mio viaggio, e volevo solo avere ulteriori chiarimenti su diversi scenari di
ReferenceseIn-Reply-To.Scenario 1: Quando si crea un post all’interno di Discourse che non risponde direttamente a un altro post, usiamo semplicemente il
Message-IDdell’OP (Original Poster) dell’argomento, che abbiamo memorizzato nella nuova colonnaoutbound_message_idsia perReferencesche perIn-Reply-To?
Potrei avere problemi con la terminologia. Per l’OP di un nuovo argomento mi aspetterei nessun References o In-Reply-To, essendo l’OP.
Per un post in un argomento esistente che non cita un post precedente specifico, che penso sia ciò che stai effettivamente descrivendo, il solo Message-ID dell’OP in ciascuno di References e In-Reply-To, esattamente come descrivi.
Scenario 2: Quando un post risponde contemporaneamente a più altri post (cosa che può accadere tramite citazioni), quale post usiamo per
In-Reply-To?
[Rileggendo di nuovo RFC 5322…]
In-Reply-Todovrebbe contenere iMessage-IDdi ciascuno dei post a cui risponde.Referencesdovrebbe essere ilReferencesdel genitore(*) con aggiunto ilMessage-IDdel genitore.
Quindi In-Reply-To torna indietro solo di un messaggio nella conversazione. Post genitore multipli significano ID messaggio multipli, ma dovrebbero essere solo gli ID messaggio dei post genitore immediati.
References è inteso per tracciare l’intera catena di risposte dall’OP al genitore(*) di questo post. Quindi è calcolato come la conversazione del genitore, più il message-id del genitore.
(*) Quando c’è più di un genitore: L’RFC dice che poiché i client (lettori di posta elettronica) si aspettano spesso che References tracci un singolo thread di risposte dall’OP al post, l’RFC scoraggia esplicitamente la fusione di tutti i References dei genitori. Invece dovresti sceglierne solo uno. La mia inclinazione personale sarebbe il primo post genitore citato, ma questa è chiaramente una decisione politica: scegli quello che ritieni più utile, forse.
Scenario 3: Simile a quanto sopra, ma limitiamoci a un singolo post a cui stiamo rispondendo. Se stiamo rispondendo al post B che a sua volta è una risposta al post A,
In-Reply-Topunta semplicemente al post B e poi i riferimenti dovrebbero essere nell’ordine dipost A, post B(ovviamente riferendosi sempre aiMessage-IDtramiteoutbound_message_idsul post)? Dobbiamo continuare a salire nella catena di risposte o fermarci al primo genitore perReferences?
In-Reply-To torna indietro esattamente di un livello. Quindi in questo scenario contiene solo il Message-ID del post genitore.
References è una catena dall’OP a questo messaggio.
Questo si riduce principalmente a come stiamo interpretando questa citazione dall’RFC, e influisce principalmente su
References: sono limitati solo alle risposte dirette tramite citazione o altro, o includono sempre anche l’OP.
Dovrebbero sempre iniziare dall’OP. Se tutti i post precedenti hanno fatto questo, puoi semplicemente aggiungere il message-id del genitore ai References del genitore e ottenere l’intera catena gratuitamente.
Se stai trattando un messaggio “legacy” potresti risalire l’albero. Oppure potresti decidere di farlo ogni volta comunque. Oppure potresti dire che le cose vanno bene per il futuro, prenderemo semplicemente i References dal genitore se è presente. Dipende da cosa decidi di memorizzare nel tuo db, penso.
Penso che finché miri a che In-Reply-To sia la parentela immediata e References una linea che risale all’OP, dovresti andare bene.
Saluti,
Cameron Simpson cs@cskk.id.au
Sì, è proprio quello che stavo descrivendo, grazie.
Grazie, quindi essenzialmente la risposta è solo: scegli un singolo post che è stato citato da usare come padre (che sia il primo citato o il post creato più di recente, basta sceglierne uno), usalo per In-Reply-To, e usalo e i suoi genitori fino all’OP per References.
Capito, ha senso.
Penso che questo chiarisca tutto e le tue risposte fossero quelle che mi aspettavo, volevo solo ricontrollare prima di iniziare i test manuali. Grazie per la rapida risposta ![]()
@cameron-simpson Penso di aver capito come funziona, ho configurato mutt e le cose sembrano essere in thread correttamente (anche se non sono sicuro del motivo per cui l’oggetto viene omesso nel thread, e non sono sicuro di come impostarlo per vedere le mie risposte inviate inline all’interno del thread):
Ed ecco come Thunderbird rappresenta lo stesso thread (in realtà mi sono reso conto che nemmeno Thunderbird mostra le mie risposte inline):
Ecco come appare in Gmail:
Gli header sono sotto, gli ID dei post iniziano da 91, quindi il post 1 == ID post 91.
Post/Email 1
(Nessun References o In-Reply-To poiché è la prima email)
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
Post/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
Post/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>
Post/Email 4
Risposte al Post 2 e al Post 3, ma usiamo il Post 3 come genitore per la catena dei riferimenti poiché dobbiamo sceglierne solo uno.
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
Post/Email 5
Questo risponde direttamente al Post 4, che a sua volta risponde direttamente al Post 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
Post/Email 6
Risposta a una risposta che ho inviato via email, nota che ho mantenuto l’ID messaggio (strano) generato da 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
Posso inviarti un PM ora per configurarti un account sul mio sito di test, e possiamo fare un po’ di scambio di email/risposte per vedere se questo corrisponde a quello che ti aspetti?
Di Martin Brennan tramite Discourse Meta alle 22/08/2022 05:36:
@cameron-simpson Penso di averlo fatto funzionare come descritto, ho
configurato mutt e le cose sembrano essere organizzate correttamente (anche se non sono
sicuro del perché l’oggetto venga omesso nel thread, e nemmeno sicuro
di come impostarlo per vedere le mie risposte inviate inline all’interno del thread):A mio parere sembra buono.
L’oggetto viene omesso nelle risposte (a meno che non cambi), il che rende più facile vedere dove inizia il thread successivo. Puoi comprimere i thread se
preferisci.Vedere le proprie risposte richiede di avere una copia della risposta in quella
cartella. L’impostazione$recordcontrolla questo.
The Mutt E-Mail ClientEd ecco come Thunderbird rappresenta lo stesso thread (in realtà mi sono reso conto che anche Thunderbird non mostra le mie risposte inline):
Anche a mio parere sembra buono.
Ecco come appare in Gmail:
Quello è… piuttosto poco compatto
Gli header sono sotto, gli ID dei post iniziano da
91, quindi il post 1 == ID post 91.
[…]Tutti questi header sembrano corretti secondo le tue descrizioni delle
relazioni dei messaggi.Noto che Discourse usa
Reply-Tocon un ID distintivo,
presumibilmente per ricomporre le risposte via email in base all’indirizzo email di destinazione. Chiaramente questo funziona. Se Discourse derivasse questo dagli headerIn-Reply-Todella risposta, potresti usare un indirizzo più stabilePosso inviarti un PM ora per farti configurare un account sul mio
sito di test, e possiamo fare un po’ di avanti e indietro via email/risposte per
vedere se questo corrisponde a quello che ti aspetti?Certamente!
Saluti,
Cameron Simpson cs@cskk.id.au
Questo viene effettivamente utilizzato per determinare se stiamo inviando a una Categoria o a un Argomento, e non viene utilizzato molto come Message-IDs ecc. per In-Reply-To e References.
Grazie, invierò il PM e un invito via email dal mio sito.
Abbiamo fatto un bel po’ di avanti e indietro e sembra che funzioni come previsto, ecco un esempio della discussione in Thunderbird:
@cameron-simpson sei d’accordo che posso procedere a inserirlo ora nel core di Discourse? Grazie ancora per aver fatto dei test.
Penso di voler rivedere le References un po’ più attentamente - pensavo di aver visto delle stranezze in un messaggio e ho fatto una risposta multipla via email e non sembrava essere riconosciuta come tale? Cercherò di dare un’occhiata stasera.
Ah sì, ora vedo il tuo ultimo post. Cosa ti aspetti da Discourse quando rispondi a 2 post? Non sono sicuro che supportiamo l’analisi delle citazioni e la loro attribuzione a più post come risposte da email in arrivo. Grazie per aver dato un’ulteriore occhiata a References. Se avessi la tua istanza di Discourse e volessi testare questo o fossi semplicemente curioso della logica, il codice si trova in questo branch feature/the-phantom-email-thread, vedi https://github.com/discourse/discourse/pull/17996 . Ha ancora bisogno di un po’ di pulizia.
Modifica: Trovato il problema della risposta, rispondo sul forum di test.
Di Martin Brennan tramite Discourse Meta alle 23:08:2022 06:16:
Ah sì, ora vedo il tuo ultimo post. Cosa ti aspetti
da Discourse quando rispondi a 2 post? Non sono sicuro che
supportiamo l’analisi delle citazioni e l’attribuzione a più post come
risposte da email in arrivo.
Non me lo aspettavo. Mi aspettavo che Discourse guardasse gli
ID dei messaggi In-Reply-To, li associasse ai post in cui corrispondono
e derivasse la “risposta multipla” da quelli.
Detto questo, non so nemmeno come fare una risposta multipla sul web (via email
è abbastanza facile, almeno con mutt). Né so come rappresenti
i post padre nel tuo db. Sicuramente non analizzi il testo del messaggio stesso?
Grazie per aver dato un’ulteriore occhiata anche a
References. Se avessi la tua
istanza di Discourse e volessi testare questo o fossi semplicemente curioso della
logica, il codice si trova in questo branch
feature/the-phantom-email-thread, vedi
https://github.com/discourse/discourse/pull/17996. Ha ancora bisogno di
un po’ di pulizia.
Grazie, darò un’occhiata. Devo sedermi e disegnare un’immagine della nostra discussione di test
e confrontare le varie intestazioni con essa; oggi ero troppo distratto.
Saluti,
Cameron Simpson cs@cskk.id.au
Ho inserito alcuni commenti qui, ma il mio cervello si sta spegnendo. In particolare, i commenti su add_identification_field_headers sono probabilmente fuorvianti: questo è il codice di fallback/originale per quando questa nuova modalità sperimentale non è abilitata? I commenti su add_experimental_identification_field_headers sono più pertinenti.




