SPF 레코드 생성기

메일을 보내는 서비스를 고르면 SPF 레코드 하나가 만들어지고, 그 레코드가 수신 서버에 쓰게 하는 DNS 조회 횟수를 만드는 동안 실시간으로 셉니다.

RFC 7208 조회 탐색, SPF 확인 도구와 동일 · 발신자 71곳의 공식 include · 브라우저에서 생성
예시

example.com의 레코드 예시

위에 도메인을 입력하면 현재 게시된 레코드에서 시작하고, 아래에서 무엇이든 바꿀 수 있습니다. 오른쪽 레코드는 바꾸는 대로 갱신됩니다.

example.com 명의로 메일을 보내는 곳은 어디입니까?
자체 서버
IPv4 주소 또는 범위
IPv6 주소 또는 범위
기타 include
업체에서 include하라고 안내한 도메인입니다.
all그 외 모든 서버의 메일

등록되지 않은 서버는 거부되지 않고 의심스러운 메일로 표시됩니다. DMARC가 quarantine이나 reject이면 DMARC가 DKIM으로 판단합니다. M3AAWG는 ~all을 권장합니다.

이 도메인은 메일을 보내지 않습니다
v=spf1 -all: 어떤 서버도 이 도메인 명의로 보낼 수 없습니다.

수신 서버가 이 레코드에 쓰는 조회

10회 조회 한도 · example.comvoid 0 / 2회

/ 10 사용한 조회

110

DNS 조회 void(빈 응답)

include를 세는 중…

조회가 쓰이는 곳

include:_spf.google.comGoogle Workspace1

게시하기 전에

게시할 준비가 되었습니다

수신 서버가 건너뛰거나 잘못 읽을 항목이 없는 레코드 하나입니다.

양호

어디에 붙여넣나요?

DNS 호스트를 고르세요: 아래 입력란은 해당 호스트의 양식이 요구하는 방식으로 쓰여 있습니다.

영역 파일 줄
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"

게시한 후

전체 확인: example.com링크에는 이 설정이 들어 있으며, 키는 절대 들어 있지 않습니다. 브라우저에서 질의했습니다: Cloudflare 리졸버, 교차 확인용으로 Google 리졸버.

SPF 레코드는 어떻게 만듭니까?

내 도메인 명의로 메일을 보내는 서비스를 모두 나열해, 그 include: 항목과 자체 서버 주소를 도메인의 TXT 레코드 하나에 넣고 ~all로 끝내면 SPF 설정이 완료됩니다.

비용이 적은 항목을 앞에 두세요. IP 주소는 DNS 조회가 들지 않고, a와 mx는 각각 1회, include는 1회에 그 안에 든 조회를 더한 만큼 듭니다.

그다음 세어 보세요. 수신 서버는 DNS 조회 10회에서 멈춥니다. 생성기는 모든 include를 실시간으로 따라가므로 이 횟수가 수신 서버가 보게 될 횟수입니다.

발신자Google WorkspaceMailjet192.0.2.25
수신 서버가 읽는 순서대로 쓴 레코드
v=spf1ip4:192.0.2.250 조회include:_spf.google.com1 조회include:spf.mailjet.com1 조회~all0 조회
발신자에서 레코드 하나까지
한도 10회를 넘는 레코드의 DNS 조회를 세고 조회를 가장 많이 쓰는 발신자를 보여 주는 SPF 레코드 생성기한도 10회를 넘는 레코드의 DNS 조회를 세고 조회를 가장 많이 쓰는 발신자를 보여 주는 SPF 레코드 생성기수신 서버가 도달하는 조회 횟수중첩 include까지 포함해 모든 include를 수신 서버가 세는 방식 그대로 브라우저에서 실시간으로 따라갑니다.조회 하나에 한 칸조회를 쓰는 발신자별로 색을 칠하고, 10회를 넘는 칸은 빗금으로 표시합니다: permanent error입니다.조회가 쓰이는 곳각 항목과 그 표시, 중첩 include, 비용을 보여 줍니다.조회를 가장 많이 쓰는 곳10회를 넘으면 가장 많이 쓰는 곳과 되돌리는 방법을 정직하게 알려 주며, flatten의 단점도 포함합니다.다른 곳에 있는 발신자SPF를 서브도메인에 두거나 아예 두지 않는 서비스는 어디에 두는지 알려 줍니다.
Microsoft 365, Freshdesk, Salesforce, Zendesk, Mimecast를 한 레코드에 넣은 경우: 각 include를 브라우저에서 실시간으로 따라가 한도 10회를 크게 넘었고, 조회를 가장 많이 쓰는 발신자와 되돌리는 방법을 보여 줍니다.

SPF 레코드에는 무엇이 들어갑니까?

누가 보낼 수 있는지 지정하는 메커니즘(ip4, ip6, a, mx, include, exists)과 끝부분 하나(all 또는 redirect)로 이루어지며, 각각 한정자가 붙습니다. DNS에 묻는 항목은 모두 10회 조회 중 1회를 씁니다.

한정자는 일치했을 때의 의미를 정합니다: + pass(기본값), - fail, ~ softfail, ? neutral. 수신 서버는 왼쪽에서 오른쪽으로 읽으며 처음 일치한 항목에서 멈춥니다.

ptr은 사용 중단되었고 느립니다: 쓰지 마세요.

항목예시DNS 조회용도
ip4ip4:192.0.2.0/240자체 IPv4 서버
ip6ip6:2001:db8::/320자체 IPv6 서버
aa1도메인 자체의 주소
mxmx1 + 이름 최대 10개메일도 보내는 수신 서버
includeinclude:_spf.google.com1 + 그 안의 조회서비스의 레코드
existsexists:%{i}._spf.example.com1주소별 확인(매크로)
redirectredirect=_spf.example.com1다른 도메인의 레코드 전체 사용
all~all0그 외 전부(끝부분)
+pass-fail~softfail?neutral
모든 메커니즘과 그 비용

Google Workspace, Microsoft 365 등을 위한 SPF 레코드

Google Workspace는 include:_spf.google.com, Microsoft 365는 include:spf.protection.outlook.com입니다. 대부분의 서비스는 include: 항목 하나를 게시하며, 일부는 내 레코드에 아무것도 필요하지 않습니다.

아래의 각 비용은 서비스의 실제 레코드에서 측정했으며 그 안에 중첩된 모든 것을 포함합니다. 수신 서버가 쓰는 만큼입니다.

「여기에는 없음」으로 표시된 서비스는 자체 반송 경로나 내 서브도메인으로 보내므로 SPF가 그곳에 있습니다.

서비스레코드에 추가할 내용조회위치
Google Workspaceinclude:_spf.google.com1내 레코드
Microsoft 365include:spf.protection.outlook.com1내 레코드
Zoho Mailinclude:zohomail.com2내 레코드
Amazon SESinclude:amazonses.com1서브도메인
SendGridinclude:sendgrid.net2서브도메인
Mailguninclude:mailgun.org5서브도메인
Mailchimp——추가할 것 없음
Brevo—1추가할 것 없음
HubSpotinclude:<HubID>.spf0N.hubspotemail.net—내 레코드
Salesforceinclude:_spf.salesforce.com2내 레코드
Zendeskinclude:mail.zendesk.com1내 레코드
Freshdeskinclude:email.freshdesk.com7내 레코드
Postmark—1추가할 것 없음
Mimecast (global)include:_netblocks.mimecast.com9내 레코드
Proton Mailinclude:_spf.protonmail.ch2내 레코드
Fastmailinclude:spf.messagingengine.com1내 레코드
발신자, 그 include, 그리고 비용

SPF의 10회 조회 한도란 무엇입니까?

수신 서버는 중첩 include를 포함해 DNS에 묻는 항목이 10개가 되면 멈추고, 이후 모든 메시지에서 SPF가 permanent error로 실패합니다. 빈 응답으로 돌아오는 조회가 세 번째가 되어도 실패합니다(RFC 7208).

한도 아래로 되돌리려면 발신자를 자체 레코드가 있는 서브도메인으로 옮기거나, 메일을 보내지 않는 서버의 a나 mx를 삭제하거나, 업체에 더 좁은 include를 요청하세요.

include를 IP 주소로 바꾸는 flatten은 조회를 줄이지만, 업체가 주소를 바꾸는 날부터 낡은 값이 됩니다: 매달 다시 확인하세요.

12 / 10 · 영구 오류(permanent error)

mx1include:spf.protection.outlook.com1include:email.freshdesk.com7include:_spf.salesforce.com2include:mail.zendesk.com1
서브도메인a/mx 삭제더 좁은 includeFlatten(낡아짐)
발신자 5곳, 조회 12회

SPF는 ~all로 끝내야 합니까, -all로 끝내야 합니까?

메일을 보내는 도메인에는 ~all을, 보내지 않는 도메인에는 -all을 쓰세요. DMARC가 강제 정책이면 DMARC가 DKIM으로 판단하지만, -all은 전달된 메일을 DMARC가 실행되기 전에 거부하게 만들 수 있습니다.

M3AAWG는 발신 도메인에 ~all을, 메일을 보내지 않는 도메인에 -all을 권장합니다. Google은 Workspace에 ~all을, Microsoft는 Microsoft 365에 -all을 안내합니다.

~allsoftfail수락하되 의심스러운 메일로 표시. DMARC가 DKIM으로 판단
-allfailDKIM이 통과해도 즉시 거부될 수 있음
?allneutralSPF가 없는 것과 같음
등록하지 않은 서버에서 온 메시지

SPF 레코드에 넣지 않아도 되는 발신자는 어디입니까?

Mailchimp, Postmark, SparkPost, Klaviyo, Shopify처럼 자체 반송 경로로 보내는 서비스는 자기 도메인에서 SPF를 통과합니다. Amazon SES, SendGrid, Mailgun은 내 발송용 서브도메인에 두어야 합니다.

SPF는 사람이 보는 From 주소가 아니라 봉투 발신자(Return-Path)를 확인합니다. DMARC에서는 이런 서비스가 DKIM으로 정렬되므로 대신 해당 DKIM 레코드를 게시하세요.

From(사람이 보는 주소)From: news@example.com
Return-Path(SPF가 확인하는 주소)Return-Path: bounce@esp.example.net

여기에 추가할 것 없음

MailchimpMandrillPostmarkSparkPostBrevoKlaviyoShopifyDynamics 365

내 서브도메인에

Amazon SESSendGridMailgun
SPF는 From 줄이 아니라 Return-Path를 확인합니다

도메인에 SPF 레코드를 두 개 둘 수 있습니까?

아니요. 한 이름에 v=spf1 레코드가 두 개 있으면 수신 서버는 permanent error로 멈추고 SPF가 실패하므로, 하나로 합치세요.

두 레코드의 발신자를 모두 남기고 끝부분은 하나로 하며, 합친 레코드의 조회를 세세요. 각각은 한도 안이어도 합치면 10회를 넘을 수 있습니다.

example.org에 게시됨v=spf1 include:_spf.google.com ~allv=spf1 include:spf.protection.outlook.com -all
레코드 하나v=spf1 include:_spf.google.com include:spf.protection.outlook.com ~all
레코드 2개를 하나로 합친 예

긴 SPF 레코드는 DNS 호스트에서 어떻게 처리됩니까?

TXT 문자열 하나는 255바이트를 담습니다. 더 긴 레코드는 여러 문자열로 나뉘고 수신 서버는 그 사이에 아무것도 넣지 않고 이어 붙이며, 대부분의 DNS 호스트가 알아서 나눠 줍니다.

Cloudflare와 Azure는 값 전체를 한 칸에 받고, Route 53과 Google Cloud DNS는 따옴표로 묶은 255바이트 문자열을 요구합니다. RFC 7208은 응답 전체를 450바이트 미만으로 유지하라고 합니다.

v=spf1 ip4:198.51.100.1 ip4:198.51.100.2 ip4:198.51.100.3 ip4:198.51.100.4 ip4:198.51.100.5 ip4:198.51.100.6 ip4:198.51.100.7 ip4:198.51.100.8 ip4:198.51.100.9 ip4:198.51.100.10 ip4:198.51.100.11 ip4:198.51.100.12 ip4:203.0.113.20 ip4:203.0.113.21 ip4:203.0.113.22 ip4:203.0.113.23 ip4:203.0.113.24 include:_spf.google.com ~all
1255 B272 B
example.com. 3600 IN TXT ( "v=spf1 ip4:198.51.100.1 ip4:198.51.100.2 ip4:198.51.100.3 ip4:198.51.100.4 ip4:198.51.100.5 ip4:198.51.100.6 ip4:198.51.100.7 ip4:198.51.100.8 ip4:198.51.100.9 ip4:198.51.100.10 ip4:198.51.100.11 ip4:198.51.100.12 ip4:203.0.113.20 ip4:203.0.113.21 ip4:203"
	".0.113.22 ip4:203.0.113.23 ip4:203.0.113.24 include:_spf.google.com ~all" )
DNS에 저장된 긴 레코드

SPF 레코드 생성기 FAQ

SPF 레코드란 무엇입니까?

SPF 레코드는 도메인에 두는 TXT 레코드로 v=spf1로 시작하며, 봉투 발신자에 내 도메인을 쓰고 메일을 보낼 수 있는 서버를 나열합니다. 수신 서버는 발신 서버를 이 목록과 비교해 메시지를 pass, softfail, fail로 판정합니다. RFC 7208에 정의되어 있으며, 도메인이 정렬되면 DMARC가 그 결과를 사용합니다.

Google Workspace의 SPF 레코드는 무엇입니까?

v=spf1 include:_spf.google.com ~all입니다. 이 include 하나가 Google의 발송 서버를 모두 포함하며 허용된 10회 중 DNS 조회 1회를 씁니다. 다른 서비스도 내 도메인 명의로 보낸다면 끝부분 앞에 그 include 항목을 추가하고 레코드는 하나로 유지하세요. 두 번째 v=spf1 레코드가 있으면 모두에게 SPF가 실패합니다.

Microsoft 365의 SPF 레코드는 무엇입니까?

Microsoft 문서대로 v=spf1 include:spf.protection.outlook.com -all이며, ~all도 쓸 수 있고 전달된 메일에 더 너그럽습니다. include는 DNS 조회 1회를 씁니다. 정부 클라우드는 GCC High의 spf.protection.office365.us처럼 자체 include를 쓰며, 생성기는 이를 별도 발신자로 나열합니다.

SPF 레코드를 두 개 둘 수 있습니까?

아니요. 같은 이름에 v=spf1 레코드가 두 개 있으면 수신 서버는 permanent error로 멈추고 모든 메시지에서 SPF가 실패합니다. 하나로 합치세요: 두 레코드의 발신자를 모두 한 레코드에 넣고 끝부분은 하나로 하면 됩니다. 생성기에 도메인을 불러오면 중복을 합쳐 주고, 합친 결과의 조회를 셉니다.

SPF 레코드의 조회가 10회를 넘으면 어떻게 됩니까?

수신 서버는 DNS에 묻는 열한 번째 항목에서 멈추고 permanent error를 반환하므로, 정상 메일을 포함한 모든 메시지에서 SPF가 실패합니다. 정렬된 DKIM으로 DMARC는 여전히 통과할 수 있지만 SPF는 도움이 되지 않습니다. 발신자를 서브도메인으로 옮기거나, 메일을 보내지 않는 서버의 a나 mx를 삭제하거나, 업체에 더 좁은 include를 요청하세요.

~all과 -all 중 무엇을 써야 합니까?

메일을 보내는 도메인에는 ~all을, 보내지 않는 도메인에는 -all을 쓰세요. ~all에서는 실패한 메일이 의심스러운 메일로 표시되고 DMARC가 DKIM으로 판단합니다. -all에서는 일부 수신 서버가 곧바로 거부하며, DMARC가 실행되기 전에 전달된 메일이 걸릴 수 있습니다. M3AAWG는 발신 도메인에 ~all을 권장합니다.

서브도메인에도 자체 SPF 레코드가 필요합니까?

메일을 보낸다면 필요합니다. SPF는 상속되지 않습니다: news.example.com은 example.com이 아니라 자기 TXT 레코드로 확인합니다. 아무것도 보내지 않는 서브도메인은 v=spf1 -all을 게시해야 하고, Amazon SES나 Mailgun 같은 서비스는 함께 설정한 발송용 서브도메인에 레코드를 두라고 안내합니다.

SPF 레코드는 어디에 추가합니까?

DNS 호스트에서 도메인 자체의 TXT 레코드로 추가합니다: 이름 칸에 @를 입력하고(Route 53은 비워 둠) 값을 붙여넣으세요. 이미 SPF 레코드가 있으면 하나를 더 추가하지 말고 그것을 수정하세요. 생성기에서 호스트를 고르면 정확한 입력란 이름과 긴 값을 받는 방식을 볼 수 있습니다.

SPF flattening이란 무엇이며 써야 합니까?

Flattening은 include 항목을 그 안에 든 IP 주소로 바꾸어 레코드에 필요한 DNS 조회를 줄이는 것입니다. 효과는 있지만, 업체가 주소를 바꿀 때마다 그 사본이 낡아지고 새 주소에서 오는 메일은 SPF에 실패합니다. 서브도메인이나 더 좁은 include를 먼저 고려하고, flatten한다면 매달 레코드를 다시 확인하세요.

SPF 생성기는 무료입니까? 저희 서버로 전송되는 것이 있습니까?

무료이며 가입이 필요 없습니다. 레코드는 브라우저에서 만들어지고, 모든 include는 브라우저가 HTTPS로 Cloudflare 리졸버(Cloudflare가 느리면 Google 리졸버)에 보내는 DNS 질의로 셉니다. 따라서 도메인과 레코드가 저희 서버를 거치지 않습니다. 입력한 내용은 저장되지 않습니다.

부족한 점이 있습니까?기능 또는 새 도구 제안하기