BLOG사업용 메일을 더 잘 운영하기 위한 실무 콘텐츠

SPF PermError

SPF PermError 해결: 회사메일 TXT 레코드가 두 개일 때 합치는 순서

회사 도메인에 SPF TXT 레코드가 두 개라 PermError가 날 때, 실제 발송 서비스를 확인하고 정책을 하나로 합친 뒤 검증하는 순서를 설명합니다.

회사 메일은 잘 보내지다가 새 발송 도구를 연결한 날부터 일부 수신처에서 거절됩니다. DNS를 열어 보니 같은 도메인에 v=spf1로 시작하는 TXT가 두 줄입니다. 도구마다 안내한 값을 각각 추가했지만, SPF에서는 이 친절한 두 줄이 오히려 오류가 됩니다.

이 글은 SPF 결과가 PermError일 때 중복 정책을 확인하고, 실제 발송 경로를 빠뜨리지 않은 채 한 줄로 정리하는 순서를 설명합니다. DNS를 바꾸기 전에는 현재 값을 백업하고, 사용 중인 발송 서비스의 공식 안내를 먼저 확인하세요.

중복된 SPF 정책 두 개를 하나로 정리하는 개념도
중복된 SPF 정책 두 개를 하나로 정리하는 개념도

SPF TXT가 두 개면 왜 문제가 될까요?

SPF는 도메인 이름 하나에 적용할 발송 허용 정책입니다. 국제 표준 RFC 7208은 같은 이름에서 SPF 정책이 둘 이상 선택되면 permerror를 반환하도록 규정합니다. 여기서 “TXT는 하나만”이라는 뜻이 아닙니다. 도메인 소유권 확인용 TXT나 DKIM용 TXT는 별개이고, 같은 호스트 이름에 있는 SPF 정책이 하나여야 합니다.

오류가 났다고 모든 메일이 반드시 반송되는 것도 아닙니다. 수신 서비스의 처리 방식과 DKIM, DMARC 결과에 따라 결과가 달라집니다. 따라서 발송 성공 한 건만 보고 설정이 정상이라고 판단하지 마세요.

오류가 난 도메인과 DNS 관리 위치를 먼저 찾습니다

반송문 또는 수신한 메일의 인증 결과에서 SPF를 검사한 도메인을 확인합니다. 화면에 보이는 From 주소와 실제 SPF 검사 대상인 MAIL FROM 도메인이 다를 수 있습니다. 그 도메인의 DNS를 관리하는 곳에서 해당 호스트 이름의 TXT를 조회하고, v=spf1로 시작하는 값이 몇 개인지 셉니다.

  • 도메인 등록업체와 실제 DNS 관리업체가 같은지 확인합니다.
  • 루트 도메인인지 특정 하위 도메인인지 정확히 구분합니다.
  • 변경 전에 기존 TXT 값과 발송 테스트 결과를 기록합니다.

두 줄을 지우기 전에 발송 서비스를 목록으로 만듭니다

회사 메일함뿐 아니라 견적서 발송 도구, 쇼핑몰 주문 알림, 뉴스레터도 같은 도메인으로 메일을 보낼 수 있습니다. 두 번째 SPF를 무조건 삭제하면 그 서비스의 발송 인증이 끊어질 수 있습니다. 최근 실제 발송 내역과 각 공급자의 현재 설정 문서를 대조해 살아 있는 발송 경로를 남기세요.

완성된 정책 두 개를 붙이지 말고, 허용 대상을 합칩니다

각 서비스가 제공한 SPF 값을 그대로 이어 붙이면 v=spf1과 종료 조건인 ~all 또는 -all이 중복될 수 있습니다. 정책 시작 표시는 한 번만 쓰고, 필요한 허용 메커니즘을 검토해 하나의 정책에 넣고, 종료 조건도 맨 끝에 한 번 둡니다. 공급자가 전용 하위 도메인을 요구하는 경우에는 루트 도메인의 정책과 섞지 마세요.

설명용 예시로 두 서비스의 허용 대상을 합치면 v=spf1 include:_spf.google.com include:sender.example ~all 같은 모양이 됩니다. sender.example은 실제 발송 서비스가 아닙니다. 이 값을 그대로 복사하지 말고 본인 공급자가 안내한 정확한 호스트로 바꿔야 합니다.

합친 뒤에는 DNS 조회 한도도 확인합니다

한 줄로 만들었다고 끝이 아닙니다. RFC 7208은 평가 중 DNS 조회를 일으키는 항목에 10회 한도를 둡니다. include, a, mx 등을 무심코 늘리면 중복을 없애고도 다른 PermError가 날 수 있습니다. 더 이상 쓰지 않는 발송 도구의 항목을 먼저 제거하고, 남길 항목은 공급자 문서와 실제 사용을 확인하세요. IP를 임의로 고정하거나 무작정 평탄화하면 공급자의 발송 서버 변경을 놓칠 수 있습니다.

공개 DNS와 실제 메일에서 각각 확인합니다

DNS 관리 화면에 한 줄이 보이는 것과 외부에서 한 줄이 조회되는 것은 다를 수 있습니다. 권한 있는 DNS의 현재 TXT를 다시 조회해 같은 호스트의 SPF 정책이 하나인지 확인합니다. 변경이 전파된 뒤에는 사용하는 발송 경로별로 외부 메일함에 테스트 메일을 보내 인증 결과를 읽으세요. SPF가 통과해도 From 도메인 정렬과 DKIM, DMARC는 별도 확인이 필요합니다.

  • 동일한 도메인 이름에 SPF 정책이 정확히 하나인가요?
  • 실제 쓰는 발송 서비스가 모두 정책에 포함됐나요?
  • 각 서비스에서 보낸 테스트 메일의 SPF 결과가 기대한 값인가요?
  • DKIM과 DMARC 상태도 별도로 확인했나요?

SPF 중복은 TXT 두 줄을 한 줄로 줄이는 편집 문제가 아니라, 우리 도메인으로 누가 실제 메일을 보내는지 정리하는 운영 문제입니다. Gmail 반송문 해석부터 시작해야 한다면 Gmail 550 인증 오류 점검 순서를 참고하세요. 설정 뒤에는 도메인 메일 진단 도구로 기본 상태를 확인할 수 있습니다. 원칙과 조회 한도는 SPF 국제 표준의 레코드 선택 규칙에서 확인할 수 있습니다.

오피셜메일로 시작하기

대표 메일 하나부터 공식 주소로 운영해보세요.

대표 메일 하나부터 회사의 공식 주소로 운영하고, 도메인 연결 값은 메일함에서 바로 확인하세요.