Il mio sito Discourse funge da client SSO per il mio sito WordPress. Gli utenti di Discourse sono stati creati per i membri del sito WordPress man mano che hanno effettuato l’accesso a WordPress. Quasi nessun utente ha effettivamente visitato il forum. Ho impostato gli email di riepilogo per essere inviati ogni giorno e ho applicato retroattivamente questa impostazione a tutti gli utenti Discourse esistenti. Il problema che riscontro è che sembra che questi riepiloghi vengano inviati solo agli account Discourse che hanno effettivamente visitato il forum in qualche momento. Voglio che gli utenti inizino a ricevere gli email di riepilogo non appena l’account esiste su Discourse. Il comportamento che osservo per le email è quello predefinito e, in tal caso, come posso superarlo?
Sai se gli utenti devono rispondere a un’email di attivazione di Discourse prima del loro primo accesso da WordPress a Discourse? Questo sarà il caso se non stai utilizzando il metodo di registrazione predefinito di WordPress sul tuo sito WordPress. Ciò significa che gli utenti non verranno contrassegnati come attivi su Discourse fino a quando non avranno risposto all’email. L’email di riepilogo viene inviata solo agli utenti che sono stati contrassegnati come attivi su Discourse.
C’è una discreta quantità di personalizzazione in corso con la nostra registrazione WordPress, ma tutti gli utenti che controllo su Discourse sono impostati su attivi. Tuttavia, l’ultima email inviata e l’ultima visualizzazione risultano vuote.
Mi chiedo se potrebbe esserci un bug? Tutte le mie impostazioni sembrano essere corrette. L’unica cosa a cui riesco a pensare è che ho impostato “sopprimi email di riepilogo dopo giorni” a 3650 e, poiché i miei utenti non sono mai stati visti, la loro email è stata soppressa. Ho anche temporaneamente soppresso le email per tutti gli utenti, ma al momento questa impostazione non è attiva.
Penso che sia questo. L’email di riepilogo ti mostra il riepilogo delle attività dall’ultima volta che hai visitato. Se non hai mai visitato, non c’è “dall’ultima volta che hai visitato”.
Sembra che questa sia la causa del problema. Il codice verifica quanto segue:
.where("COALESCE(last_seen_at, '2010-01-01') >= CURRENT_TIMESTAMP - ('1 DAY'::INTERVAL * #{SiteSetting.suppress_digest_email_after_days})")
Poiché last_seen_at restituirà nil per un nuovo utente, il codice verificherà se ‘2010-01-01’ è successivo a 3650 giorni fa prima di inviare l’email. Aumentare il valore di questa impostazione dovrebbe risolvere il problema. Il rischio nell’impostare tale valore a un numero elevato di giorni è che potresti inviare l’email di riepilogo a utenti che non hanno alcun interesse nel sito.
Ha aiutato un po’, ma non ha risolto il problema. Per fare dei test, ho impostato la frequenza delle email di riepilogo a 30 minuti e il numero massimo di notifiche al giorno a 1. Ho impostato l’opzione “ultima visita” a 365000. In sostanza, gli utenti aggiunti a Discourse negli ultimi 17 giorni hanno ricevuto email, così come alcuni utenti visibili di recente ma creati in precedenza. Posso confermare che tutti gli utenti sono attivati — o almeno lo sono per un campione casuale di utenti che non hanno ricevuto email. Non sono sicuro di come risolvere il problema. C’è qualcosa che posso resettare manualmente?
Ho fatto un’ulteriore indagine e sembra che le preferenze per le email di riepilogo sulla maggior parte degli account non vengano impostate quando modifico la frequenza. Quindi, se cambio la frequenza del riepilogo da 30 minuti a 1 ora e confermo per applicare la modifica a tutti gli account, l’impostazione non sembra essere applicata. Ho confermato questo impersonando gli account che non ricevono le email: nelle loro impostazioni delle preferenze, i riepiloghi risultano disattivati.