자체 호스팅 설치 환경(v2026.7.3, release/2026.7)에서 재현되었습니다. SES SMTP는 us-east-1에 있으며, 내장된 PostgreSQL 18을 사용하고 있습니다.
설정
aws_sns_topic_arn_allowlist에는 정확한 토픽 ARN이 포함되어 있습니다(SNS 콘솔에서 확인됨)./webhooks/aws에 대한 SNS HTTPS 구독이 확인되었습니다. 같은 구독은 release/2026.4 및 2026.5.0에서 2026년 3월부터 6월까지 바운스 메시지를 올바르게 처리했습니다.
관찰 사항
bounce@simazonses.com으로 두 개의 테스트 메시지를 보냈습니다. 각 메시지는 컨테이너에 도달한 하나의 SNS POST를 생성했습니다:
"POST /webhooks/aws HTTP/1.1" "Amazon Simple Notification Service Agent" 200 402
/logs에는 아무것도 기록되지 않았으며, /admin/email-logs/bounced 하위에도 아무것도 없습니다. WebhooksController#aws는 허용 목록 또는 서명 검증 실패 시 406을 반환하므로, 200 응답은 두 가지 검사 모두 통과했음을 확인시켜 주며 Jobs::ProcessSnsNotification이 대기열에 추가되었음을 의미합니다. 이후 이 작업은 mail.messageId(SES가 할당)가 EmailLog.message_id(Discourse의 자체 Message-ID, Email::Sender에서 email_log.message_id = @message.message_id로 설정됨)와 결코 일치하지 않기 때문에 next if email_log.nil?에서 종료됩니다.
Git 히스토리는 위의 분석과 일치합니다: #7284(2019)는 정확히 이 이유로 ID 매칭을 제거했으며, 61f12e1(2026년 6월)은 SES가 할당된 ID를 사용하여 이를 다시 도입했습니다. release/2026.7에서 해당 커밋 이후로 작업은 변경되지 않았습니다.
현재 ESR에서 SES를 사용하는 자체 호스터에게 미치는 순 효과는 바운스 처리가 조용히 비활성화되며, 새로운 대시보드 알림이 관리자가 아무것도 수행하지 않는 구성으로 유도한다는 것입니다. 수정 사항이 적용되면 release/2026.7로의 백포트를 환영합니다.