Situación
reply_by_email_enableddesactivado: 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_inestá 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_enabledse 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ónemail_inconfigurada asociada a una categoría. Este cambio tiene en cuenta la configuración enEmail::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é? 
Tengo muchas preguntas:
- ¿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.
- ¿por qué está implementado de esta manera?
- ¿aparentemente el correo entrante a grupos no es un problema?
- si
reply_by_email_enabledes 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
- la configuración de la que ahora depende repentinamente se llama reply (respuesta) por correo electrónico. Eso no es lo que estoy haciendo.
- 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