DKIM - 본문 해시 검증 실패 - Discourse에서 발송된 이메일

호스팅 사이트(pair.com)의 자동화 시스템을 사용하여 DKIM 레코드를 생성했습니다. DigitalOcean DNS 서버에 DKIM 호스트와 키가 포함된 TXT 레코드를 만들었습니다.

Thunderbird를 통해 이메일을 보내면 DKIM이 통과됩니다. 그러나 동일한 서버/계정 정보를 사용하여 Discourse가 이메일을 보내면 다음과 같은 결과가 나타납니다:

dkim=neutral (body hash did not verify) header.i=@knysnayachtowners.org header.s=pair-202409020848 header.b=UW+zWBx8;

무엇이 잘못되었나요?

DKIM 서명은 송신 메일 서버에서 수행됩니다. 즉, Discourse가 설정된 SMTP 서버로 메일을 전달한 후에 이루어집니다.

해시 불일치를 보고 있다면, 이는 서명된 후 이메일이 수정되었거나 키 페어가 일치하지 않는다는 것을 의미합니다.

Thunderbird와 Discourse에서 동일한 세부 정보를 확실히 사용 중이라면(컨테이너를 재시작하여 app.yml에 있는 세부 정보를 사용하도록 확인하셨나요?), 다른 키나 다른 셀렉터로 서명될 것이라고는 생각하기 어렵습니다. 따라서 키 페어가 일치하지 않는 경우에도 동일한 결과가 나와야 할 것입니다.

From 주소가 서로 다르고, 메일 제공업체가 이를 기반으로 다른 방식으로 서명하고 있는 것은 아닌가요?

결론적으로, Discourse를 떠난 후에 무언가 일어나고 있습니다. From 주소와 같은 명백한 원인을 찾을 수 없다면, 무슨 일이 일어나고 있는지 파악하기 위해 메일 제공업체에 문의해야 할 수도 있습니다.

제안한 대로, notification email을 메일 전송을 위해 설정한 도메인의 주소로 변경해야 합니다.

추가 테스트를 여러 번 수행해 본 결과, 문제가 발생했던 TO 주소가 메일을 Gmail로 전달하도록 설정되어 있었다는 것을 발견했습니다. 메일을 Gmail로 직접 보내면 DKIM 해시 검증이 통과되었습니다.

하지만 이 점은 여전히 이해가 되지 않습니다. 해당 주소로 보낸 다른 메일의 헤더를 살펴보면 DKIM 해시 검증이 통과되고 있기 때문입니다. 왜 이 경우만 다른 결과가 나오는 걸까요?

Gmail은 해당 DKIM을 인식하지 못합니다. Google은 이 부분에 대해 매우 엄격합니다. 그 주요 이유는 실제 발송 서버가 관리자가 생각하는 서버와 다르기 때문입니다.