상황
reply_by_email_enabled가 비활성화되어 있으며, 우리는 사람들이 이메일로 답장하는 것을 원하지 않습니다- 외부 시스템의 알림을 위한 관리자 전용 카테고리
- 해당 카테고리에 이메일 주소가 설정되어 있음
email_in이 활성화되어 있음- 이메일이 카테고리의 이메일 주소로 전송됨
- 이메일이
BadDestinationAddress와 함께 바운스(bounce)됨
원인
1시간 동안 디버깅을 한 끝에 다음 커밋을 발견했습니다: FIX: Disallow replies to categories when reply by email disabled (#33… · discourse/discourse@e05ef50 · GitHub
FIX: Disallow replies to categories when reply by email disabled (#33641)
When the reply_by_email_enabled setting is set to false, we no longer include a reply link in e-mail notifications. However, we do not prevent actual e-mails to a configured email_in address associated with a category. This change into consideration the setting in Email::Receiver#check_address.
그리고 영향을 받은 코드는 reply_by_email_enabled가 활성화되지 않은 경우 더 이상 카테고리를 반환하지 않습니다.
def self.check_address(address, include_verp = false)
# only check for a group/category when 'email_in' is enabled
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? <-- added
end
왜일까요? 
저에게는 정말 많은 질문이 있습니다:
- 왜 이런 변경이 이루어졌을까요? 아예 왜 그랬을까요? 이는 시스템의 유연성을 더 떨어뜨릴 뿐입니다. 만약 사람들이 카테고리로 이메일을 보내는 것을 원하지 않는다면, 단순히 카테고리에서 이메일 주소를 제거하면 되지 않나요?
- 왜 이런 방식으로 구현되었을까요?
-Apparently 그룹으로의 이메일 수신은 문제가 아닌 것 같습니다?
reply_by_email_enabled가 false라면 카테고리를 조회할 필요조차 없지 않나요?- 카테고리를 반환하지 않음으로써 오류가
BadDestinationAddress가 되는데, 이는 매우 잘못되었고 디버깅이 정말로 어렵습니다
- 이제 갑자기 의존하게 된 이 설정의 이름은 reply(답장) by email입니다. 제가 하고 있는 것은 그 것이 아닙니다.
- PR 제목에도 같은 혼란이 드러나는데, “disallow replies to categories”(카테고리에 대한 답장 금지)라고 되어 있지만, 이는 이 사안의 본질이 아닙니다(Discourse에서 "카테고리에 대한 답장"은 심지어 불가능합니다).
구현 방식 외에도, 저는 진심으로 그 의도를 이해하지 못하겠습니다.
사람들이 카테고리로 이메일을 보내는 것을 방지하려면 카테고리에서 이메일 주소를 단순히 제거하는 것으로 충분하지 않은 상황을 저는 생각조차 할 수 없습니다. 그리고 이 함의는 이제 사이트 전체의 이메일 답장(reply by email)을 활성화하지 않고 이메일을 수신하는 카테고리를 가질 수 없게 되었다는 것입니다.
제가 놓치고 있는 정말 좋은 이유가 있다면, #contribute:feature로 재분류해 주셔도 좋습니다.