Ситуация
reply_by_email_enabledотключён, мы не хотим, чтобы люди отвечали по электронной почте- категория только для администраторов для уведомлений от внешней системы
- для этой категории настроен адрес электронной почты
email_inвключён- письма отправляются на адрес электронной почты категории
- письма возвращаются с ошибкой
BadDestinationAddress
Причина
После часа отладки я наткнулся на следующее: FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub
FIX: Запретить ответы на категории, когда отправка ответов по электронной почте отключена (#33641)
Когда параметр
reply_by_email_enabledустановлен в false, мы больше не включаем ссылку для ответа в уведомления по электронной почте. Однако мы не блокируем фактические письма, отправленные на настроенный адресemail_in, связанный с категорией. Это изменение учитывает настройку вEmail::Receiver#check_address.
и затронутый код больше не будет возвращать категорию, если reply_by_email_enabled не включён.
def self.check_address(address, include_verp = false)
# проверка группы/категории только когда 'email_in' включён
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? <-- добавлено
end
Почему? 
У меня так много вопросов:
- зачем вообще это изменение? Оно лишь делает систему менее гибкой. Если я не хочу, чтобы люди писали на категорию, я просто удалю адрес электронной почты из категории?
- почему это реализовано именно так?
- похоже, что отправка писем в группы не является проблемой?
- если
reply_by_email_enabledравен false, то зачем вообще искать категорию? - поскольку категория не возвращается, ошибка становится
BadDestinationAddress, что ОЧЕНЬ неверно и ОЧЕНЬ сложно отлаживать
- настройка, от которой теперь внезапно зависит эта логика, называется ответ по электронной почте. Это не то, что я делаю.
- та же путаница видна в заголовке PR, который называется «запретить ответы на категории», что не соответствует сути (в Discourse «ответ на категорию» вообще невозможен).
Помимо способа реализации, я честно говоря не вижу смысла.
Я не могу придумать НИ ОДНОЙ ситуации, когда простое удаление адреса электронной почты из категории не решило бы задачу, если нужно запретить людям писать на категорию. Последствием этого стало то, что теперь невозможно иметь категорию, принимающую письма, без включения функции ответов по электронной почте на уровне всего сайта.
Если есть действительно веская причина, которую я упускаю, пожалуйста, перекатегоризируйте это как #feature