¿La categoría de correo electrónico requiere reply_by_email_enabled?

Situación

  • reply_by_email_enabled desactivado: no queremos que la gente responda por correo electrónico
  • una categoría solo para administradores para notificaciones de un sistema externo
  • la categoría tiene una dirección de correo electrónico configurada
  • email_in está habilitado
  • los correos electrónicos se envían a la dirección de correo electrónico de la categoría
  • los correos electrónicos rebotan con el error BadDestinationAddress

La causa

Después de una hora de depuración, me topé con el siguiente commit de FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub

CORRECCIÓN: Prohibir respuestas a categorías cuando la opción de responder por correo electrónico está desactivada (#33641)

Cuando la configuración reply_by_email_enabled se establece en falso, ya no incluimos un enlace de respuesta en las notificaciones por correo electrónico. Sin embargo, no impedimos el envío real de correos electrónicos a una dirección email_in configurada asociada a una categoría. Este cambio tiene en cuenta la configuración en Email::Receiver#check_address.

y el código afectado ya no devolverá una categoría si reply_by_email_enabled no está habilitado.

    def self.check_address(address, include_verp = false)
      # solo verificar un grupo/categoría cuando 'email_in' está habilitado
      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? <-- añadido
      end

¿Por qué? :scream:

Tengo muchas preguntas:

  1. ¿por qué este cambio? ¿En absoluto? Esto solo hace que el sistema sea menos flexible. Si no quiero que la gente envíe correos electrónicos a una categoría, simplemente eliminaría la dirección de correo electrónico de la categoría.
  2. ¿por qué está implementado de esta manera?
  • ¿aparentemente el correo entrante a grupos no es un problema?
  • si reply_by_email_enabled es falso, ¿no hay necesidad de buscar siquiera la categoría?
  • al no devolver la categoría, el error se convierte en BadDestinationAddress, lo cual es MUY incorrecto y REALMENTE difícil de depurar
  1. la configuración de la que ahora depende repentinamente se llama reply (respuesta) por correo electrónico. Eso no es lo que estoy haciendo.
  2. la misma confusión es visible en el título de la solicitud de extracción (PR), que se titula “prohibir respuestas a categorías”, lo cual no es lo que esto trata (en Discourse, “responder a una categoría” ni siquiera es posible).

Además de la forma en que se implementó, sinceramente no logro ver el punto.

No se me ocurre NINGUNA situación en la que simplemente eliminar la dirección de correo electrónico de la categoría no resolvería el problema si uno quiere evitar que la gente envíe correos electrónicos a una categoría. Y la implicación de esto es que ahora se ha vuelto imposible que una categoría reciba correos electrónicos sin habilitar la respuesta por correo electrónico a nivel del sitio.

Si hay una razón realmente buena que me estoy perdiendo, no dudes en reclasificarlo como Contribute > Feature

5 Me gusta

De hecho, me di cuenta de esto yo mismo y ya lo estoy investigando.

Estoy de acuerdo en que la corrección realizada en FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub fue mala, ya que se basaba e introducía un efecto secundario, pero no lo notamos porque las pruebas están organizadas de tal manera que las condiciones para activarlo no estaban presentes. Estoy trabajando para corregir eso ahora.

3 Me gusta

Mi corrección propuesta:

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

3 Me gusta

Esto ha sido fusionado @RGJ, ¿puedes verificar después de actualizar que tu configuración funciona como se espera?

2 Me gusta

¡Sí, funciona de maravilla ahora! Gracias :slight_smile:

2 Me gusta