이메일로 답장이 작동하던데, 지금은 안 돼요

이메일로 답장(Reply-by-Email) 기능이 2년 동안 정상 작동하다가, 17일 전부터 뚜렷한 이유 없이 멈췄습니다. 해당 기간의 스태프 액션 로그를 검색해 보았지만 관련 설정 변경 사항도, 업그레이드도, 새로운 플러그인도 없었습니다. 무엇이 깨진 것일까요?


9월 30일 이후 수신된 이메일이 없습니다:


거절되는 것도 아닙니다:


오류 로그에서 눈에 띄게 관련 있는 내용은 없지만, 아래 내용이 있습니다:

aws-sdk-core-3.112.1/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'

aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'

aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/dualstack.rb:36:in `call'

aws-sdk-s3-1.96.1/lib/aws-sdk-s3/plugins/accelerate.rb:50:in `call'

aws-sdk-core-3.112.1/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:22:in `call'

aws-sdk-core-3.112.1/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'

aws-sdk-core-3.112.1/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'

aws-sdk-core-3.112.1/lib/seahorse/client/plugins/request_callback.rb:71:in `call'

aws-sdk-core-3.112.1/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'

aws-sdk-core-3.112.1/lib/seahorse/client/plugins/response_target.rb:24:in `call'

aws-sdk-core-3.112.1/lib/seahorse/client/request.rb:72:in `send_request'

aws-sdk-s3-1.96.1/lib/aws-sdk-s3/client.rb:1274:in `copy_object'

/var/www/discourse/lib/backup_restore/s3_backup_store.rb:61:in `block in vacate_legacy_prefix'

/var/www/discourse/lib/backup_restore/s3_backup_store.rb:60:in `each'

/var/www/discourse/lib/backup_restore/s3_backup_store.rb:60:in `vacate_legacy_prefix'

/var/www/discourse/app/jobs/onceoff/vacate_legacy_prefix_backups.rb:7:in `execute_onceoff'

/var/www/discourse/app/jobs/onceoff/onceoff.rb:25:in `execute'

/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'

rails_multisite-3.1.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'

/var/www/discourse/app/jobs/base.rb:221:in `block in perform'

/var/www/discourse/app/jobs/base.rb:217:in `each'

/var/www/discourse/app/jobs/base.rb:217:in `perform'

sidekiq-6.2.2/lib/sidekiq/processor.rb:196:in `execute_job'

sidekiq-6.2.2/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'

sidekiq-6.2.2/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'

/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'

sidekiq-6.2.2/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'

sidekiq-6.2.2/lib/sidekiq/middleware/chain.rb:143:in `invoke'

sidekiq-6.2.2/lib/sidekiq/processor.rb:163:in `block in process'

sidekiq-6.2.2/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'

sidekiq-6.2.2/lib/sidekiq/job_retry.rb:112:in `local'

sidekiq-6.2.2/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'

sidekiq-6.2.2/lib/sidekiq.rb:38:in `block in <module:Sidekiq>'

sidekiq-6.2.2/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'

sidekiq-6.2.2/lib/sidekiq/processor.rb:257:in `stats'

sidekiq-6.2.2/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'

sidekiq-6.2.2/lib/sidekiq/job_logger.rb:13:in `call'

sidekiq-6.2.2/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'

sidekiq-6.2.2/lib/sidekiq/job_retry.rb:79:in `global'

sidekiq-6.2.2/lib/sidekiq/processor.rb:124:in `block in dispatch'

sidekiq-6.2.2/lib/sidekiq/logger.rb:11:in `with'

sidekiq-6.2.2/lib/sidekiq/job_logger.rb:33:in `prepare'

sidekiq-6.2.2/lib/sidekiq/processor.rb:123:in `dispatch'

sidekiq-6.2.2/lib/sidekiq/processor.rb:162:in `process'

sidekiq-6.2.2/lib/sidekiq/processor.rb:78:in `process_one'

sidekiq-6.2.2/lib/sidekiq/processor.rb:68:in `run'

sidekiq-6.2.2/lib/sidekiq/util.rb:43:in `watchdog'

sidekiq-6.2.2/lib/sidekiq/util.rb:52:in `block in safe_thread'

pop3 폴링이 아닌 수동 폴링을 사용 중입니다:

image


이메일로 답장을 시도하는 발신자에게는 거절 알림이나 오류 메시지가 전송되지 않습니다.

포럼에서 이메일을 보내는 것은 정상적으로 작동합니다. AWS SES에도 문제가 없습니다(다만, 이것이 이메일로 답장 기능과 관련이 있다고 생각하지는 않습니다).

discourse-doctor에도 문제가 없습니다(비공식 플러그인이 있다는 점은 언급되지만, 해당 기간 동안 플러그인은 변경되지 않았습니다).

이것은 단순히 우연일 수도 있습니다(내 마음의 일부는 그렇게 생각합니다), 하지만…

상당히 부유한 그룹이라 오래된 기기를 사용하는 경우는 많지 않을 것 같아요.

클라이언트 측 문제가 아니라 서버 측 문제라고 생각합니다.

메일 NFL컨테이너를 다시 만들어야 한다고 생각합니다.

아마도 더 자세한 설명이 필요할 것 같습니다. 메타 전체에서 NFL에 대한 다른 언급은 없습니다(축구팀 제외). NFS? /var/discourse/containers에 그런 컨테이너는 없습니다.

죄송합니다. 오타입니다.

메일 컨테이너를 다시 빌드하세요.

cd /var/discourse 
./launcher rebuild mail-receiver 

pfaffman님, 덕분에 해결되었습니다. 이전에 비슷한 문제를 겪어 보신 것 같은데, 더 잘 처리할 수 있었던 부분이 있나요? 저희 경우, 사용자 이메일을 받지 못하는 것 이상의 파급효과가 있었습니다:

VERP는 수신 이메일에 의존합니다. 그래서 며칠 동안 반송 및 불만 처리를 하지 못했고, SES에 대한 평판이 급락하여 발신 이메일이 중단되었습니다.

DST Root CA X3 Expiration (September 2021) - Let's Encrypt 의 결과입니다. 몇몇 사람들에게 예상치 못한 상황이었고, Discourse 자체 호스팅 사용자에게 발생한 문제들은 미묘해서 간과되었습니다. 그리고 아직 해결해야 할 문제들이 남아 있습니다.

10월 1일에 처리가 중단된 것으로 추정됩니다.

SES를 작동시키는 방법을 끝내 파악하지 못했습니다. 긴급한 임시 조치로는 mailgun을 설정하여 발신 메일을 처리하는 것입니다.