Situazione
reply_by_email_enableddisabilitato: non vogliamo che le persone rispondano via email- una categoria riservata agli amministratori per le notifiche da un sistema esterno
- alla categoria è stato assegnato un indirizzo email
email_inè abilitato- le email vengono inviate all’indirizzo email della categoria
- le email restituiscono un errore di rimbalzo con il messaggio
BadDestinationAddress
La causa
Dopo un’ora di debug, ho trovato il seguente commit FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub
FIX: Blocca le risposte alle categorie quando la risposta via email è disabilitata (#33641)
Quando l’impostazione
reply_by_email_enabledè impostata su false, non includiamo più un link per rispondere nelle notifiche email. Tuttavia, non impedivamo l’invio effettivo di email a un indirizzoemail_inconfigurato associato a una categoria. Questa modifica tiene conto dell’impostazione inEmail::Receiver#check_address.
e il codice interessato non restituirà più una categoria se reply_by_email_enabled non è abilitato.
def self.check_address(address, include_verp = false)
# controlla solo un gruppo/categoria quando 'email_in' è abilitato
if SiteSetting.email_in
group = Group.find_by_email(address)
return group if group
category = Category.find_by_email(address)
return category if category && SiteSetting.reply_by_email_enabled? <-- aggiunto
end
Perché? 
Ho così tante domande:
- perché questa modifica? Perché? Rende il sistema solo meno flessibile. Se non voglio che le persone scrivano a una categoria via email, rimuovo semplicemente l’indirizzo email dalla categoria?
- perché è implementata in questo modo?
- a quanto pare l’invio di email a un gruppo non è un problema?
- se
reply_by_email_enabledè false, non c’è bisogno di cercare la categoria? - non restituendo la categoria, l’errore diventa
BadDestinationAddress, il che è MOLTO sbagliato e MOLTO difficile da debuggare
- l’impostazione su cui ora dipende questa funzione si chiama reply (risposta) via email. Non è quello che sto facendo io.
- la stessa confusione è visibile nel titolo della PR, intitolata “disallow replies to categories” (blocca le risposte alle categorie), che non è di cosa si tratta (in Discourse una “risposta a una categoria” non è nemmeno possibile).
Oltre al modo in cui è stata implementata, onestamente non vedo il senso.
Non riesco a pensare a NESSUNA situazione in cui la semplice rimozione dell’indirizzo email dalla categoria non risolva il problema se si vuole impedire alle persone di inviare email a una categoria. E l’implicazione di tutto ciò è che ora diventa impossibile far ricevere email a una categoria senza abilitare la risposta via email a livello di sito.
Se c’è un motivo valido che mi sfugge, sentiti libero di riclassificare come Contribute > Feature