DKIM, DMARC 드이어 pass 되었습니다.

Writer : 사랑을 담은 비너스인/
Date : 2025. 3. 11. 18:58/
Category : 지식in/Etc
반응형

그동안 도메인 셋팅하면서 아무런 문제없이 이용했는데 언제부터인가 도메인에 등록된 정보로 메일이 전송되지않는 일이 발생했습니다.

daum 메일은 정상적으로 들어갔지만 naver 또는 google 메일의 경우 메일이 안들어경우가 허다 했습니다. 심지어

인증 메일을 발송하면 Undelivered Mail Returned to Sender 으로 계속 반송되는일이 반복되기 시작했습니다.

이제 반송되는 사유에 대해 확인을 해봅니다. Diagnostic-Code: smtp; 550 5.1.1 코드가 나와있으며 링크를 제공합니다.

 

네이버 메일 서버 응답 메시지에 따른 조치 방법 : 메일 고객센터

네이버 메일 또는 SMTP(smtp.naver.com)와 연동한 환경에서 메일을 정상적으로 전송하지 못할 경우, 오류메시지(BOUNCE)와 함께 메일이 반송됩니다.​아래 오류 메시지를 통해 문제의 원인을 파악하고,

help.naver.com

코드를 확인해보면 계정관련인데 문제는 메일 주소는 정상적인데 메일이 네이버 측에 전송이 안되는 문제가 있었습니다.

부랴부랴 관련 정보를 찾아보니 DKIM, DMARC, SPF 설정을 하면 해결된다고 알려줘서 도메인에 셋팅을 진행 했습니다.

도메인에서 dns 셋팅을 완료 후 이제 정상적으로 인증 메일이 전송되기 시작했습니다. 근데 문제는 하루에 한번씩 이메일로

Report domain: ****** Submitter: google.com Report-ID: 1013************** 리포트 정보가 도착합니다. 처음엔 그냥 관련 리포트 인가하고

그냥 확인안하고 넘기려고했으나 이게 하루 이틀 지날수록 매일 오다보니 뭔가 잘못된거 같다 싶어 내용을 확인해봤습니다.

메일을 열어보니 별다른 내용은 없고 일반 첨부zip파일만 덩그러니 도착해있습니다. 이제 첨부파일을 내려받아 압축을 해제 합니다.

압축 해제하면 xml 파일만 있고 실행해도 별다른 정보를 확인할 수 있는게 없습니다. 뷰어가 있지않는 이상은...

그래서 급히 xml 파일을 깔끔하게 볼수있는 뷰어 코드를 생성합니다. 필요한사람은 아래 폴딩 클릭하시면 코드 제공해드립니다.

더보기
<?php
$xmlContent = "";
$xml = null;

if ($_SERVER["REQUEST_METHOD"] == "POST" && !empty($_POST["xml_data"])) {
    $xmlContent = trim($_POST["xml_data"]);
    libxml_use_internal_errors(true);
    $xml = simplexml_load_string($xmlContent);
}
?>

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>DMARC XML 리포트 뷰어</title>
    <style>
        body { font-family: Arial, sans-serif; margin: 20px; padding: 20px; }
        textarea { width: 100%; height: 200px; font-family: monospace; }
        table { width: 100%; border-collapse: collapse; margin-top: 20px; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #f4f4f4; }
        h2 { color: #333; }
        button { padding: 10px 15px; font-size: 14px; }
    </style>
</head>
<body>

<h2>DMARC XML 리포트 변환</h2>
<form method="post">
    <textarea name="xml_data" placeholder="여기에 XML 데이터를 붙여넣으세요..." required><?= htmlspecialchars($xmlContent) ?></textarea><br>
    <button type="submit">변환하기</button>
</form>

<?php if ($xml): ?>
    <h2>📊 보고서 정보</h2>
    <table>
        <tr><th>발신 조직</th><td><?= $xml->report_metadata->org_name ?></td></tr>
        <tr><th>문의 이메일</th><td><?= $xml->report_metadata->email ?></td></tr>
        <tr><th>보고서 ID</th><td><?= $xml->report_metadata->report_id ?></td></tr>
        <tr><th>대상 도메인</th><td><?= $xml->policy_published->domain ?></td></tr>
        <tr><th>정책</th><td><?= $xml->policy_published->p ?></td></tr>
        <tr><th>하위 도메인 정책</th><td><?= $xml->policy_published->sp ?></td></tr>
        <tr><th>적용 비율</th><td><?= $xml->policy_published->pct ?>%</td></tr>
    </table>

    <h2>📌 발송 IP 및 인증 결과</h2>
    <table>
        <tr>
            <th>발송 IP</th>
            <th>이메일 수</th>
            <th>DKIM</th>
            <th>SPF</th>
            <th>정책 적용</th>
        </tr>
        <?php foreach ($xml->record as $record): ?>
            <tr>
                <td><?= $record->row->source_ip ?></td>
                <td><?= $record->row->count ?></td>
                <td><?= $record->row->policy_evaluated->dkim ?></td>
                <td><?= $record->row->policy_evaluated->spf ?></td>
                <td><?= $record->row->policy_evaluated->disposition ?></td>
            </tr>
        <?php endforeach; ?>
    </table>
<?php elseif ($_SERVER["REQUEST_METHOD"] == "POST"): ?>
    <p style="color: red;">⚠️ 올바른 XML 형식이 아닙니다.</p>
<?php endif; ?>

</body>
</html>

xml 파일의 코드를 넣고 변환 누르면 위 처럼 깔끔하게 보고서 정보를 볼 수 있습니다. 여기서 확인해볼것은 인증결과 란에

DKIM 탭에 fail 이라고 나와 있습니다. 저부분에 정상적이면 pass 가 있어야하는데 통과를 못한것입니다.

도메인 셋팅할때 분명 dkim 인증키를 맞게 잘넣었는데도 불고 하고 pass 가안나와서 왜 그럴까 고민을 해봤습니다.

제공할때 기본 default._domainkey 으로 하니까 실패가 발생하는거같아서 이번엔 *********._domainkey 으로 변경 후 적용했더니

이제 정상적으로 해결이 된건지 보고서 메일도 도착않습니다.그래서 바로 조회를 해봅니다. 조회사이트는 아래를 참고하세요.

DKIM 조회

https://mxtoolbox.com/SuperTool.aspx?action=dkim:네임._domainkey.본인도메인.co.kr

https://toolbox.googleapps.com/apps/dig/#TXT/네임._domainkey.본인도메인.co.kr

DMARC 조회 

https://mxtoolbox.com/SuperTool.aspx?action=dmarc:_dmarc.본인도메인.co.kr

https://toolbox.googleapps.com/apps/dig/#TXT/_dmarc.본인도메인.co.kr

일단 DKIM 먼저 확인을 해봅니다.

정상적으로 다 체크가 되어 있습니다.

이제 DMARC 도 조회 해보면 완료된걸 확인 할 수 있습니다.이로써 간단하게 인증키를 넣고 금방 해결될일을 오랜시간동안 해결못한것도

참 허무합니다. 이제 다 pass 뜨고 인증 메일도 daum, kakao, naver, google 등등 각종 메일 사이트에 스팸메일로 안빠지고 잘들어갑니다.

이로써 모든게 해결되었습니다. 이제 한가지 해결했으니 또다른 문제 해결해야합니다. 에디터 기능을 수정해야되는데 마음대로 잘안되네요.

아무쪼록 해결되었으니 혹시라도 저같이 문제 발생하시는분이라면 참고하세요.

반응형
venusin.tistory.com/1069