Amazon Simple Email Service(Amazon SES)에서 보내는 이메일이 발신자 정책 프레임워크(SPF) 정렬 또는 도메인 키 식별 메일(DKIM) 정렬을 위한 도메인 기반 메시지 인증, 보고 및 적합성(DMARC) 검증에 실패합니다.
간략한 설명
SPF와 DKIM 정렬 모두 엄격한 정렬 또는 완화된 정렬을 충족해야 합니다.
SPF 정렬을 확인하기 위해 DMARC는 Mail From 또는 Envelope From 도메인을 From 도메인과 일치시킵니다. Mail From 또는 Envelope From 도메인이 From 도메인과 동일하면 엄격한 정렬입니다. Mail From 또는 Envelope From 도메인이 From 도메인의 하위 도메인이면 완화된 정렬입니다.
DKIM 정렬을 확인하기 위해 DMARC는 DKIM 서명의 d= 도메인과 From 도메인을 일치시킵니다. d= 도메인이 From 도메인과 동일하면 엄격한 정렬입니다. d= 도메인이 From 도메인의 하위 도메인이면 완화된 도메인입니다.
해결 방법
DMARC 레코드에서 SPF 또는 DKIM에 대해 완화된 정렬 사용
이메일이 DMARC 검증을 통과하는 데 도움이 되도록 완화된 정렬을 사용하십시오.
도메인의 SPF 및 DKIM에 대한 DMARC 정렬을 확인하려면 다음 명령을 실행하십시오.
nslookup -type=TXT _dmarc.example.com
이 명령은 다음과 유사한 DMARC 레코드를 반환합니다.
"v=DMARC1;p=quarantine;pct=25;rua=mailto:hello@example.com"
SPF 인증의 경우 레코드에 aspf 태그가 포함되지 않거나 레코드에 aspf=r 문자열이 포함되어 있으면 도메인에서 완화된 정렬을 사용합니다. 위의 예제에는 aspf 태그가 포함되어 있지 않으므로 예제 도메인에서는 완화된 정렬을 사용합니다. 레코드에 aspf=s 문자열이 포함되어 있으면 도메인에서 엄격한 정렬을 사용합니다.
DKIM의 경우 레코드에 adkim 태그가 포함되지 않거나 레코드에 adkim=r 문자열이 포함되어 있으면 도메인에서 완화된 정렬을 사용합니다. 레코드에 adkim=s 문자열이 포함된 경우 도메인은 엄격한 정렬을 사용합니다.
시스템 관리자만 엄격한 정렬에서 완화된 정렬로 변경할 수 있습니다.
SPF 인증을 통한 DMARC 준수
메시지가 SPF 인증을 통해 DMARC를 준수하는지 확인하려면 다음 구성을 확인합니다.
- MAIL FROM 도메인의 SPF 레코드에 include:amazonses.com이 포함되어야 합니다.
- 발신 메일 서버가 수신 메일 서버에 지정하는 MAIL FROM 도메인이 이메일 헤더의 FROM 주소와 일치합니다.
Amazon SES를 사용하여 이메일을 보낼 때 MAIL FROM 도메인은 기본적으로 amazonses.com의 하위 도메인입니다. From 도메인은 이메일을 보내는 도메인입니다. MAIL FROM 도메인이 From 도메인과 일치하지 않는 경우 DMARC 검증을 위한 SPF 정렬이 실패합니다.
이 문제를 해결하려면 이메일을 보내는 인증된 ID에 사용자 지정 MAIL FROM 도메인을 설정해야 합니다. 사용자 지정 MAIL FROM 도메인은 항상 상위 도메인의 하위 도메인입니다. 예를 들어 인증된 도메인(From 도메인)이 example.com인 경우 사용자 지정 MAIL FROM 도메인을 mail.example.com으로 설정할 수 있습니다.
SPF 인증은 MAIL FROM 도메인을 검사하므로 Amazon SES의 사용자 지정 MAIL FROM 하위 도메인에 SPF 레코드를 추가하십시오. 사용자 지정 MAIL FROM 도메인은 하위 도메인이므로 하위 도메인은 SPF에 대해 완화된 정책(aspr=r)을 사용해야 합니다.
DKIM 인증을 통한 DMARC 준수
메시지가 DKIM 인증을 통해 DMARC를 준수하는지 확인하려면 다음 구성을 확인합니다.
- 메시지에 유효한 DKIM 서명이 있고 DKIM 검사를 통과했습니다.
- 이메일 헤더의 From 주소가 DKIM 서명의 d= 도메인과 일치합니다.
Amazon SES에서 Easy DKIM을 사용하면 3개의 CNAME 레코드를 가져옵니다. DKIM 레코드를 확인하려면 각 CNAME 레코드에서 다음 명령을 실행합니다:
nslookup -type=CNAME example1._domainkey.example.com
참고: example1._domainkey.example.com을 CNAME 레코드의 이름으로 바꾸십시오.
이 명령은 DKIM 레코드를 반환합니다.
example1.dkim.amazonses.com.
Easy DKIM을 설정하는 것이 가장 좋은 방법인데, DKIM을 통해 두 가지 DMARC 검증 요구 사항을 모두 충족할 수 있기 때문입니다. 이메일에 수동 서명을 선택할 수도 있지만 Amazon SES는 DKIM 서명을 검증하지 않습니다.