Abbiamo alcuni script che generano email per le nostre categorie di Discourse per tracciare automaticamente eventi del progetto come risultati dei test, nuovi problemi segnalati dagli utenti, ecc. Avevo ingenuamente pensato che se due email apparissero con la stessa riga dell’oggetto (ad esempio, “test linux64”), sarebbero finite automaticamente nello stesso argomento; invece sembra che stiamo ottenendo un argomento separato per ciascuna di queste email. (Rispondere a un argomento tramite email lo mantiene nello stesso argomento, come ci si aspetterebbe ovviamente).
Cercando un po’ nei forum su questo argomento, ho trovato menzioni delle impostazioni “Consenti argomenti con titoli identici e duplicati” e “Consenti argomenti con titoli identici e duplicati se la categoria è diversa”. A mia sorpresa, nessuna di queste è selezionata nel nostro sito, eppure abbiamo argomenti con lo stesso titolo a causa di questi script. È possibile che queste impostazioni si applichino solo agli argomenti generati dall’interfaccia del sito web e non dalle email?
In ogni caso, esiste un modo per configurare un sito Discourse in modo che le email inviate a una determinata categoria con un determinato oggetto vengano automaticamente unite in un singolo argomento invece di generare un argomento per ogni messaggio email? (Capisco che questo potrebbe causare una leggera confusione se due utenti pubblicano argomenti tramite email con lo stesso oggetto, ma mi sembra un compromesso ragionevole).
Se non stai guardando il sito, come fai a sapere se un titolo è già stato utilizzato?
Non sono certo di aver capito bene la tua domanda (perché temo di starmi ripetendo), ma provo a rispondere:
Lo scenario che motiva questa domanda per il nostro sito Discourse è quello in cui i post sono generati da script che utilizzano linee di soggetto prevedibili (ad esempio, “linux64 testing”), con l’intenzione che vengano raggruppati all’interno di un unico argomento. Per questi script, non importa se il titolo è già stato utilizzato, purché il comportamento sia: “se esiste già un argomento con il titolo della linea di soggetto, fai in modo che la mail aggiunga un post all’argomento esistente invece di crearne uno nuovo; se non esiste già, crea un nuovo argomento con la linea di soggetto come titolo”.
Entrando un po’ più nel ipotetico, potrei immaginare un utente che lavora in un ambiente sicuro e non è autorizzato a interagire direttamente con i siti web; ma i cui amministratori di sistema riflettono i contenuti di un sito di interesse nel loro ambiente per la navigazione in sola lettura. Conoscere la linea di soggetto di un dato argomento permetterebbe a tale utente di aggiungere un nuovo post a un argomento specifico via email, senza aver bisogno di una mail relativa a quell’argomento nella propria casella di posta a cui rispondere.
Fammi sapere se ho frainteso ciò che stai chiedendo.
Hai considerato di utilizzare qualcosa di diverso da SMTP per la consegna dei messaggi?
Non ci abbiamo pensato, ma potremmo certamente prenderlo in considerazione se è considerata una best practice. Per assicurarmi di aver capito correttamente, stai suggerendo che i nostri script pubblichino su Discourse interagendo con il sito web tramite HTML come farebbe un umano? O i siti Discourse supportano un’API a cui gli script possano rivolgersi direttamente? Se hai indicazioni o esempi su come potremmo approcciare questa soluzione, sarebbero molto utili; siamo decisamente ancora molto nuovi nell’amministrazione di Discourse.
Oppure, mi chiedevo se potrebbe esserci qualche altro trucco che potremmo usare negli header delle email per far sì che Discourse le aggiunga all’argomento esistente invece di crearne uno nuovo. Immagino che impostare l’oggetto “Re: linux64 testing” non sia sufficiente e che sia l’indirizzo Reply-to: e/o i metadati dell’header dell’email a far sì che una risposta venga aggiunta a un argomento esistente anziché avviare uno nuovo? (in tal caso, potremmo creare manualmente argomenti per ogni possibile oggetto generato dagli script nella categoria, capire quali sono quei metadati e poi incorporarli nel nostro script, ma ciò sembrerebbe piuttosto macchinoso se esistesse già un modo per unire automaticamente le email a un argomento esistente in base all’oggetto, specialmente per script che potrebbero generare nuovi oggetti nel tempo).
È un caso d’uso molto specifico per chiedere di modificare un comportamento complessivo.
Forse, ma per essere obiettivi, nel post originale (OP), chiedevo solo se esistesse un modo per ottenere ciò che volevamo ed esprimevo la mia confusione nel vedere la creazione di più argomenti con lo stesso titolo nonostante avessimo deselezionato l’impostazione “consenti argomenti duplicati”. Non sono riuscito a trovare alcuna documentazione che indicasse che questo fosse il comportamento atteso e pensavo che, dato che Discourse rifiuta le email per vari motivi (ad esempio, “quell’oggetto non sembra essere una frase completa”), avremmo potuto ricevere messaggi di rimbalzo che indicavano “quel titolo di argomento esiste già in questa categoria” (non che ciò mi avrebbe reso più felice, ma sarebbe sembrato più coerente con le etichette della casella di controllo).
Tuttavia, non credo che la richiesta di un cambiamento di comportamento sia così strana: ritengo che sia davvero fantastico e potente che i siti Discourse possano accettare post via email. Nel nostro caso, è già l’80% di una buona soluzione per far sì che gli script generino aggiornamenti su argomenti Discourse esistenti. E la richiesta di funzionalità mi è sembrata simile ad altre che ho visto su Discourse-meta e che sono state implementate, poiché appare chiaramente utile (molti progetti hanno script che generano email) e non mi è sembrata in contrasto con la filosofia di Discourse (anche se, ancora una volta, siamo nuovi sul lato dell’amministrazione). Questo non significa che sia una decisione ovvia in alcun modo, semplicemente non mi è sembrato irragionevole porre la domanda.
Quando si tratta di un utente che interagisce con il sito, vengono utilizzati i codici di risposta delle email per mantenere tutto nello stesso argomento. In questo caso, useresti la modalità mailing list per introdurre i codici di risposta nell’ambiente sicuro.
La funzionalità “invio email” (diversa da “risposta via email”) creerà attualmente solo nuovi argomenti e non aggiungerà mai contenuti a un argomento esistente.
Pensavo di aver capito la situazione di Discourse dopo i vostri commenti su questa issue la settimana scorsa (che riassumerei come: “per progettazione, i titoli duplicati sono accettati quando inviati tramite la funzionalità ‘invio via email’, indipendentemente dall’impostazione ‘consenti argomenti duplicati’, perché non è chiaro cosa altro il sito potrebbe fare?”). Ma oggi mi trovo confuso perché i nostri script hanno ricevuto un rimbalzo per alcune email, con il messaggio:
Il titolo è già stato utilizzato
Ho frainteso la situazione o qualcosa è cambiato sul vostro lato dalla settimana scorsa?
Alcune cose sono cambiate sul nostro lato e potrebbero spiegare questo cambiamento di comportamento:
Ho reso l’indirizzo email da cui i nostri script inviano le email un “utente noto” sul sito Discourse, perché altrimenti ricevevo occasionali rimbalzi; ho quindi pensato di assegnargli un livello di fiducia più alto per aggirare il problema (nei miei messaggi precedenti, lo script agiva come “utente anonimo”).
Ho disabilitato la possibilità per gli utenti anonimi di pubblicare in questa categoria, ora che il nostro script è un utente noto.
Assumendo che non sia cambiato nulla dal vostro lato, è corretto che gli utenti registrati siano soggetti a standard più rigorosi rispetto agli utenti anonimi riguardo all’impossibilità di inviare argomenti con titoli duplicati? Esiste una motivazione per questa scelta? (Mi aspetterei generalmente che le capacità di un utente registrato superino quelle di un utente anonimo).