2011-01-27 22 views
6

Durante la scrittura di un'applicazione che invia email in base a determinati eventi, vorrei applicare la regola che ciascuna di queste email inizia una nuova "conversazione".Forza un nuovo thread di email

sistemi di posta elettronica come Gmail, come messaggi e-mail di gruppo in "conversazioni", in modo tale che i messaggi Un si presume essere una replica al messaggio B. Ci sono molti metodi che usano per determinare a quale messaggio stai rispondendo, come l'intestazione Subject: o l'intestazione In-Reply-To :.

Tuttavia, dal momento che le email automatiche tendono a riutilizzare a volte linee tematiche (ad esempio "fallimento monitoraggio sul server di foo.bar.com"), spesso il servizio di posta assumerà che una data e-mail è in realtà una risposta a un messaggio precedente con lo stesso oggetto, anche se i due non sono correlati. Ciò può portare a confusione e i clienti potrebbero perdere una notifica importante.

E 'possibile (e se sì, allora come) segnalare nelle intestazioni delle e-mail che una determinata e-mail NON è una risposta a nessun altro, nonostante eventuali somiglianze nelle righe dell'oggetto?

Dal momento che l'e-mail soggetto stesso è visibile al cliente, preferirei evitare stupidità in questo modo: "Subject: Automated reminder for $task [".md5sum(date())."]"

risposta

2

Non c'è davvero un modo per farlo per tutti i sistemi di posta elettronica. Anche se capisci come aggirarlo per Gmail, per quanto riguarda le modalità di conversazione threaded di Mail.app, Thunderbird e Outlook? Certamente ogni client di posta che supporta tale funzionalità determina l'appartenenza dei messaggi a una determinata conversazione in modo diverso.

Detto questo, sembra che la maggior parte dei client utilizzi una combinazione di mittente, risposta e soggetto. Il client web di Gmail utilizza identificatori di thread interni per tracciare più accuratamente le email inviate dal client web. Hai pensato di inviare da diversi indirizzi email? Ad esempio, con Gmail, [email protected] corrisponde a [email protected]. Qualunque cosa dopo + viene eliminata e ignorata per motivi di instradamento della posta, ma non penso che venga ignorata quando si calcola l'appartenenza al thread. Non sono sicuro che questa regola di indirizzamento sia specifica per Gmail o se sia parte dello standard, comunque.

1

Anche se è possibile disattivare la conversazione threading in Gmail come utente, non c'è modo di non dirlo per infilare un'e-mail che invii a qualcun altro.

Perché non aggiungere semplicemente la data alla fine? In questo modo avrai un po 'più di informazioni facilmente accessibili e non dovresti avere un intero gruppo di vecchi messaggi trascinati come parte di un thread.

2

La maggior parte dei client di posta elettronica organizza i thread in base alle seguenti intestazioni InReplyTo, References, Thread-Index (da Outlook). Quindi, se non specifichi quelli nel tuo messaggio di posta elettronica, penso che non sarà considerato come parte di un thread esistente (a meno che non sia attiva una discussione di base basata sull'oggetto).

Ora, GMail tiene conto anche del soggetto. Quindi penso che tu voglia cambiare anche la riga dell'oggetto. Dovrai sperimentarne alcuni.

Problemi correlati