L'email di categoria richiede reply_by_email_enabled?

Situazione

  • reply_by_email_enabled disabilitato: 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 indirizzo email_in configurato associato a una categoria. Questa modifica tiene conto dell’impostazione in Email::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é? :scream:

Ho così tante domande:

  1. 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?
  2. 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
  1. l’impostazione su cui ora dipende questa funzione si chiama reply (risposta) via email. Non è quello che sto facendo io.
  2. 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

5 Mi Piace

Ho scoperto la cosa da solo e ci sto già lavorando.

Concordo che la correzione apportata in FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub fosse sbagliata poiché si basava e introduceva un effetto collaterale, ma non ce ne siamo accorti poiché i test sono organizzati in modo tale che le condizioni per innescarlo non fossero presenti. Ci sto lavorando per correggerlo ora.

3 Mi Piace

La mia correzione proposta:

https://github.com/discourse/discourse/pull/37227

3 Mi Piace

Questo è stato unito @RGJ - puoi verificare dopo l’aggiornamento che la tua configurazione funzioni come previsto?

2 Mi Piace

Sì, funziona a meraviglia adesso! Grazie :slight_smile:

2 Mi Piace