[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"cms-term-spf-en":3,"cms-terms-fields%5B0%5D=title&fields%5B1%5D=slug&fields%5B2%5D=definition&sort=title%3Aasc&locale=en&filters%5Btitle%5D%5B%24startsWithi%5D=S&pagination%5BpageSize%5D=7":33},{"data":4,"meta":29},[5],{"id":6,"documentId":7,"title":8,"slug":9,"definition":10,"bodyHtml":11,"createdAt":12,"updatedAt":12,"publishedAt":13,"locale":14,"seo":15,"localizations":20},16,"styciw36xt8y2lps6psap7h9","SPF Record","spf","SPF record syntax, copy-paste templates for Yandex 360, VK WorkSpace, Google Workspace and Microsoft 365, the 10-lookup limit and common errors explained.","\u003Cp>SPF (Sender Policy Framework) is a TXT record in a domain's DNS that lists the servers allowed to send email on its behalf. The receiving server checks the sender's IP against this list and decides whether to trust the message. Without SPF, Gmail and Mail.ru send more of your email to spam, and scammers can send mail in your name.\u003C/p>\n\u003Cp>Below you'll find ready-made SPF records for Yandex 360, VK WorkSpace, Google Workspace and Microsoft 365, plus a list of errors that silently break SPF.\u003C/p>\n\u003Ch2>At a glance: SPF in numbers\u003C/h2>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cstrong>Fact\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Value\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Source\u003C/strong>\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>Standard\u003C/td>\u003Ctd>RFC 7208, 2014\u003C/td>\u003Ctd>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208\">IETF\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Maximum DNS lookups during evaluation\u003C/td>\u003Ctd>10, otherwise the result is permerror\u003C/td>\u003Ctd>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">RFC 7208,\u003C/a> \u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">section 4.6.4\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Maximum “void” DNS lookups\u003C/td>\u003Ctd>2\u003C/td>\u003Ctd>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">RFC 7208,\u003C/a> \u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">section 4.6.4\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>SPF records per domain\u003C/td>\u003Ctd>exactly one\u003C/td>\u003Ctd>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">RFC 7208\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Gmail requirement for all senders\u003C/td>\u003Ctd>SPF or DKIM; from 5,000 emails a day, SPF, DKIM and DMARC\u003C/td>\u003Ctd>\u003Ca href=\"https://support.google.com/mail/answer/81126?hl=en\">Google, 2024\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Mail.ru requirement\u003C/td>\u003Ctd>SPF, DKIM and DMARC must all pass\u003C/td>\u003Ctd>\u003Ca href=\"https://help.mail.ru/developers/mailing_rules/technical/\">Mail.ru\u003C/a>\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2>How an SPF record works\u003C/h2>\n\u003Cp>The check takes a fraction of a second and runs in four steps:\u003C/p>\n\u003Col>\u003Cli>Your server sends an email with a sender address on the company.com domain.\u003C/li>\u003Cli>The receiving server looks up the TXT record for company.com that starts with v=spf1.\u003C/li>\u003Cli>It compares the sender's IP with the list of allowed servers.\u003C/li>\u003Cli>It writes the result into the email headers: pass, fail, softfail, neutral or permerror.\u003C/li>\u003C/ol>\n\u003Cp>\u003Cstrong>Important: SPF checks the technical sender address (Return-Path), not the From address\u003C/strong> \u003Cstrong>the recipient sees.\u003C/strong> DMARC is what links the two. That's why SPF alone isn't enough: you also need DKIM and DMARC.\u003C/p>\n\u003Ch2>What an SPF record is made of\u003C/h2>\n\u003Cp>A record is a single string with a version, mechanisms and a final rule. Example: \u003Ccode>v=spf1 include:_spf.google.com ip4:203.0.113.10 ~all\u003C/code>.\u003C/p>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cstrong>Element\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Meaning\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Costs a DNS\u003C/strong> \u003Cstrong>lookup\u003C/strong>\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>v=spf1\u003C/code>\u003C/td>\u003Ctd>Version, always first\u003C/td>\u003Ctd>No\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>ip4:\u003C/code> / \u003Ccode>ip6:\u003C/code>\u003C/td>\u003Ctd>A specific IP or subnet\u003C/td>\u003Ctd>No\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>a\u003C/code>\u003C/td>\u003Ctd>IPs from the domain's A record\u003C/td>\u003Ctd>Yes\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>mx\u003C/code>\u003C/td>\u003Ctd>Servers from the domain's MX records\u003C/td>\u003Ctd>Yes\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>include:\u003C/code>\u003C/td>\u003Ctd>Servers from another domain's SPF (your mail provider)\u003C/td>\u003Ctd>Yes, plus nested ones\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>redirect =\u003C/code>\u003C/td>\u003Ctd>Use another domain's SPF entirely\u003C/td>\u003Ctd>Yes\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>-all\u003C/code>\u003C/td>\u003Ctd>Reject all other servers (fail)\u003C/td>\u003Ctd>No\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>~all\u003C/code>\u003C/td>\u003Ctd>Treat all others as suspicious (softfail)\u003C/td>\u003Ctd>No\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>?all\u003C/code> / \u003Ccode>+all\u003C/code>\u003C/td>\u003Ctd>Neutral / allow everyone\u003C/td>\u003Ctd>No\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>Never use \u003Ccode>+all\u003C/code>: it allows any server on the internet to send email in your name.\u003C/p>\n\u003Ch2>~all or -all: which to choose\u003C/h2>\n\u003Cp>Start with \u003Ccode>~all\u003C/code> and switch to \u003Ccode>-all\u003C/code> once you're sure the record lists every service that sends email from the domain.\u003C/p>\n\u003Cul>\u003Cli>\u003Ccode>~all\u003C/code> is safer: if you forgot your CRM or sending tool, its emails will be treated as suspicious but not rejected outright.\u003C/li>\u003Cli>\u003Ccode>-all\u003C/code> is stricter and better against spoofing, but any forgotten system will stop delivering email.\u003C/li>\u003C/ul>\n\u003Cp>For cold outreach domains where only one provider sends mail, you can use the strict rule from the start.\u003C/p>\n\u003Ch2>How to set up SPF in 10 minutes\u003C/h2>\n\u003Col>\u003Cli>\u003Cstrong>List your senders.\u003C/strong> Mail provider, CRM, sending tool, website forms — everything that sends email from your domain.\u003C/li>\u003Cli>\u003Cstrong>Check for an existing SPF record.\u003C/strong> In your DNS panel, look for a TXT record starting with v=spf1. If there is one, edit it instead of adding a second.\u003C/li>\u003Cli>\u003Cstrong>Build the record\u003C/strong> from the templates below: one \u003Ccode>v=spf1\u003C/code>, all \u003Ccode>include:\u003C/code> entries and one final \u003Ccode>~all\u003C/code> or \u003Ccode>-all\u003C/code>.\u003C/li>\u003Cli>\u003Cstrong>Add the TXT record\u003C/strong> for the root of the domain (host \u003Ccode>@\u003C/code>) at your registrar or DNS provider.\u003C/li>\u003Cli>\u003Cstrong>Wait for DNS to update\u003C/strong> — usually from a few minutes to a few hours, depending on the TTL.\u003C/li>\u003Cli>\u003Cstrong>Check the result\u003C/strong>: send an email to Gmail and look for \u003Ccode>SPF: PASS\u003C/code> under “Show original”.\u003C/li>\u003C/ol>\n\u003Cp>In Holymailer you can skip this step: SPF, DKIM, DMARC and MX are \u003Ca href=\"https://holymailer.com/capabilities\">configured automatically\u003C/a> when you register or delegate a domain, and are checked daily.\u003C/p>\n\u003Ch2>Ready-made SPF records for popular mail providers\u003C/h2>\n\u003Cp>Copy the line for your provider and check it against the provider's current documentation before publishing it to DNS.\u003C/p>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cstrong>Provider\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>TXT record for host @\u003C/strong>\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>Yandex 360\u003C/td>\u003Ctd>\u003Ccode>v=spf1 redirect=_spf.yandex.net\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>VK WorkSpace (Mail.ru)\u003C/td>\u003Ctd>\u003Ccode>v=spf1 redirect=_spf.mail.ru\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Google Workspace\u003C/td>\u003Ctd>\u003Ccode>v=spf1 include:_spf.google.com ~all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Microsoft 365\u003C/td>\u003Ctd>\u003Ccode>v=spf1 include:spf.protection.outlook.com -all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Google Workspace + sending tool\u003C/td>\u003Ctd>\u003Ccode>v=spf1 include:_spf.google.com include:[domain from the tool's docs] ~all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Yandex 360 + your own server\u003C/td>\u003Ctd>\u003Ccode>v=spf1 include:_spf.yandex.net ip4:[server IP] ~all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Domain that doesn't send email\u003C/td>\u003Ctd>\u003Ccode>v=spf1 -all\u003C/code>\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>\u003Ccode>redirect=\u003C/code> only works when a single service sends your email. If there are several, replace it with \u003Ccode>include:\u003C/code> and add \u003Ccode>~all\u003C/code> at the end.\u003C/p>\n\u003Ch2>7 errors that break SPF\u003C/h2>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cstrong>Error\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>What happens\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>How to fix\u003C/strong>\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>Two SPF records on one domain\u003C/td>\u003Ctd>The check returns permerror\u003C/td>\u003Ctd>Merge them into one line\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>More than 10 DNS lookups\u003C/td>\u003Ctd>permerror, SPF counts as failed\u003C/td>\u003Ctd>Remove unused includes, replace a and mx with ip4\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Forgot the sending tool or CRM\u003C/td>\u003Ctd>Its emails get softfail or fail\u003C/td>\u003Ctd>Add the include from the service's docs\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>+all\u003C/code> at the end\u003C/td>\u003Ctd>Anyone can send in your name\u003C/td>\u003Ctd>Replace with \u003Ccode>~all\u003C/code> or \u003Ccode>-all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Record on the wrong host\u003C/td>\u003Ctd>Result is none\u003C/td>\u003Ctd>Add it for \u003Ccode>@\u003C/code> or the right subdomain\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Sending from a subdomain without its own record\u003C/td>\u003Ctd>SPF isn't inherited by subdomains\u003C/td>\u003Ctd>Create SPF for every sending subdomain\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Typos: space after a colon, two all's, quotes inside\u003C/td>\u003Ctd>permerror\u003C/td>\u003Ctd>Check the record with an SPF validator\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2>How to check an SPF record\u003C/h2>\n\u003Cp>Three ways, from simple to technical:\u003C/p>\n\u003Cul>\u003Cli>\u003Cstrong>Email headers.\u003C/strong> In Gmail, open “Show original”. \u003Ccode>SPF: PASS\u003C/code> means everything is fine. Mail.ru describes the same check in its \u003Ca href=\"https://help.mail.ru/developers/notes/authentication/\">developer help\u003C/a> (in Russian).\u003C/li>\u003Cli>\u003Cstrong>Terminal command.\u003C/strong> \u003Ccode>nslookup -type=txt company.com\u003C/code> or \u003Ccode>dig TXT company.com +short\u003C/code> shows the published record.\u003C/li>\u003Cli>\u003Cstrong>Online SPF validator.\u003C/strong> It counts DNS lookups and finds syntax errors.\u003C/li>\u003C/ul>\n\u003Ch2>Frequently asked questions\u003C/h2>\n\u003Cp>\u003Cstrong>What is an SPF record in simple terms?\u003C/strong>\u003C/p>\n\u003Cp>It's a list of servers allowed to send email from your domain. It lives in DNS as a TXT record, and mailbox providers check it for every incoming email.\u003C/p>\n\u003Cp>\u003Cstrong>Can a domain have two SPF records?\u003C/strong>\u003C/p>\n\u003Cp>No. RFC 7208 prohibits multiple SPF records on one domain, and the check will return an error. Combine all services into one line using include.\u003C/p>\n\u003Cp>\u003Cstrong>Which should I choose: ~all or -all?\u003C/strong>\u003C/p>\n\u003Cp>\u003Ccode>~all\u003C/code> if you're not sure you've listed every sender. \u003Ccode>-all\u003C/code> when the list is definitely complete, for example on a separate outreach domain with a single provider.\u003C/p>\n\u003Cp>\u003Cstrong>How long does an SPF record take to apply?\u003C/strong>\u003C/p>\n\u003Cp>Usually from a few minutes to a few hours. It depends on the record's TTL and your DNS provider.\u003C/p>\n\u003Cp>\u003Cstrong>Do I need SPF if DKIM is already set up?\u003C/strong>\u003C/p>\n\u003Cp>Yes. Gmail requires both SPF and DKIM from senders of 5,000+ emails a day, and Mail.ru expects SPF, DKIM and DMARC to pass for all mailings. The mechanisms complement each other.\u003C/p>\n\u003Cp>\u003Cstrong>What does SPF softfail in the headers mean?\u003C/strong>\u003C/p>\n\u003Cp>The email was sent from a server that isn't in the record, and the record ends with \u003Ccode>~all\u003C/code>. Add that service via include or ip4.\u003C/p>\n\u003Ch2>Sources\u003C/h2>\n\u003Cul>\u003Cli>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208\">RFC 7208: Sender Policy Framework\u003C/a> — the SPF standard, 2014.\u003C/li>\u003Cli>\u003Ca href=\"https://support.google.com/mail/answer/81126?hl=en\">Google: Email sender guidelines\u003C/a> — in force since February 1, 2024.\u003C/li>\u003Cli>\u003Ca href=\"https://help.mail.ru/developers/mailing_rules/technical/\">Mail.ru: technical requirements for mailings\u003C/a> (in Russian).\u003C/li>\u003Cli>\u003Ca href=\"https://help.mail.ru/developers/notes/authentication/\">Mail.ru: how to check SPF, DKIM, DMARC in an email\u003C/a> (in Russian).\u003C/li>\u003Cli>\u003Ca href=\"https://holymailer.com/capabilities\">Holymailer: capabilities\u003C/a> (in Russian).\u003C/li>\u003C/ul>\n\u003Ch2>JSON-LD markup\u003C/h2>\n\u003Cp>{ &#34;@context&#34;: &#34;https://schema.org&#34;, &#34;@graph&#34;: [ { &#34;@type&#34;: &#34;Article&#34;, &#34;inLanguage&#34;: &#34;en&#34;, &#34;headline&#34;: &#34;SPF Record: Set It Up in 10 Minutes + Ready-Made Templates&#34;, &#34;author&#34;: {&#34;@type&#34;: &#34;Person&#34;, &#34;name&#34;: &#34;[Author name]&#34;, &#34;jobTitle&#34;: &#34;[Job title]&#34;}, &#34;datePublished&#34;: &#34;2026-09-30&#34;, &#34;dateModified&#34;: &#34;2026-09-30&#34;, &#34;publisher&#34;: {&#34;@type&#34;: &#34;Organization&#34;, &#34;name&#34;: &#34;Holymailer&#34;, &#34;url&#34;: &#34;https://holymailer.com&#34;} }, { &#34;@type&#34;: &#34;HowTo&#34;, &#34;name&#34;: &#34;How to set up SPF in 10 minutes&#34;, &#34;step&#34;: [ {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;List every service that sends email from your domain.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Check whether a TXT record with v=spf1 already exists.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Build one record: v=spf1, all include entries and a final ~all or -all.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Add the TXT record for host @ at your DNS provider.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Wait for DNS to update.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Send a test email to Gmail and check for SPF: PASS in the original message.&#34;} ] }, { &#34;@type&#34;: &#34;FAQPage&#34;, &#34;mainEntity&#34;: [ {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;What is an SPF record in simple terms?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;It's a list of servers allowed to send email from your domain. It lives in DNS as a TXT record.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Can a domain have two SPF records?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;No. RFC 7208 prohibits multiple SPF records on one domain. Combine all services into one line using include.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Which should I choose: ~all or -all?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;~all if you're not sure you've listed every sender. -all when the list is definitely complete.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;How long does an SPF record take to apply?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;Usually from a few minutes to a few hours, depending on the record's TTL and your DNS provider.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Do I need SPF if DKIM is already set up?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;Yes. Gmail requires both SPF and DKIM from senders of 5,000+ emails a day, and Mail.ru expects SPF, DKIM and DMARC to pass for all mailings.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;What does SPF softfail in the headers mean?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;The email was sent from a server that isn't in the record, and the record ends with ~all. Add that service via include or ip4.&#34;}} ] } ] }\u003C/p>","2026-10-01T15:14:16.295Z","2026-10-01T15:14:16.298Z","en",{"id":16,"metaTitle":17,"metaDescription":10,"keywords":18,"canonical":18,"noindex":19},112,"SPF Record: Set It Up in 10 Minutes + Ready-Made Templates",null,false,[21],{"id":22,"documentId":7,"title":23,"slug":9,"definition":24,"bodyHtml":25,"createdAt":26,"updatedAt":26,"publishedAt":27,"locale":28},14,"SPF-запись","SPF-запись для домена: синтаксис, шаблоны для Яндекс 360, VK WorkSpace, Google и Microsoft 365, лимит 10 DNS-запросов и частые ошибки. Скопируйте шаблон.","\u003Cp>SPF (Sender Policy Framework) — TXT-запись в DNS домена со списком серверов, которым разрешено отправлять почту от его имени. Сервер получателя сверяет IP отправителя с этим списком и решает, доверять ли письму. Без SPF Gmail и Mail.ru чаще отправляют письма в спам, а мошенники могут слать почту от вашего имени.\u003C/p>\n\u003Cp>Ниже — готовые SPF-записи для Яндекс 360, VK WorkSpace, Google Workspace и Microsoft 365, а также список ошибок, из-за которых SPF молча ломается.\u003C/p>\n\u003Ch2>Коротко: SPF в цифрах\u003C/h2>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cstrong>Факт\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Значение\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Источник\u003C/strong>\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>Стандарт\u003C/td>\u003Ctd>RFC 7208, 2014\u003C/td>\u003Ctd>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208\">IETF\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Максимум DNS-запросов при проверке\u003C/td>\u003Ctd>10, иначе результат permerror\u003C/td>\u003Ctd>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">RFC 7208,\u003C/a> \u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">раздел 4.6.4\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Максимум «пустых» DNS-ответов\u003C/td>\u003Ctd>2\u003C/td>\u003Ctd>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">RFC 7208,\u003C/a> \u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">раздел 4.6.4\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>SPF-записей на один домен\u003C/td>\u003Ctd>строго одна\u003C/td>\u003Ctd>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208#section-4.6.4\">RFC 7208\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Требование Gmail ко всем отправителям\u003C/td>\u003Ctd>SPF или DKIM; от 5 000 писем в день — SPF, DKIM и DMARC\u003C/td>\u003Ctd>\u003Ca href=\"https://support.google.com/mail/answer/81126?hl=en\">Google, 2024\u003C/a>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Требование Mail.ru\u003C/td>\u003Ctd>SPF, DKIM и DMARC должны проходить проверку\u003C/td>\u003Ctd>\u003Ca href=\"https://help.mail.ru/developers/mailing_rules/technical/\">Mail.ru\u003C/a>\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2>Как работает SPF-запись\u003C/h2>\n\u003Cp>Проверка занимает доли секунды и идёт в четыре шага:\u003C/p>\n\u003Col>\u003Cli>Ваш сервер отправляет письмо с адресом отправителя на домене company.ru.\u003C/li>\u003Cli>Сервер получателя запрашивает TXT-запись company.ru, которая начинается с v=spf1.\u003C/li>\u003Cli>Сравнивает IP отправителя со списком разрешённых серверов.\u003C/li>\u003Cli>Записывает результат в заголовок письма: pass, fail, softfail, neutral или permerror.\u003C/li>\u003C/ol>\n\u003Cp>\u003Cstrong>Важно: SPF проверяет технический адрес отправителя (Return-Path), а не адрес в\u003C/strong> \u003Cstrong>поле «От», который видит человек.\u003C/strong> Связь между ними обеспечивает DMARC. Поэтому одного SPF недостаточно: нужны ещё DKIM и DMARC.\u003C/p>\n\u003Ch2>Из чего состоит SPF-запись\u003C/h2>\n\u003Cp>Запись — это строка из версии, механизмов и финального правила. Пример: \u003Ccode>v=spf1 include:_spf.google.com ip4:203.0.113.10 ~all\u003C/code>.\u003C/p>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cstrong>Элемент\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Что означает\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Тратит DNS-запрос\u003C/strong>\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>v=spf1\u003C/code>\u003C/td>\u003Ctd>Версия, всегда в начале\u003C/td>\u003Ctd>Нет\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>ip4:\u003C/code> / \u003Ccode>ip6:\u003C/code>\u003C/td>\u003Ctd>Конкретный IP или подсеть\u003C/td>\u003Ctd>Нет\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>a\u003C/code>\u003C/td>\u003Ctd>IP из A-записи домена\u003C/td>\u003Ctd>Да\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>mx\u003C/code>\u003C/td>\u003Ctd>Серверы из MX-записей домена\u003C/td>\u003Ctd>Да\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>include:\u003C/code>\u003C/td>\u003Ctd>Серверы из SPF другого домена (почтового сервиса)\u003C/td>\u003Ctd>Да, плюс вложенные\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>redirect =\u003C/code>\u003C/td>\u003Ctd>Полностью использовать SPF другого домена\u003C/td>\u003Ctd>Да\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>-all\u003C/code>\u003C/td>\u003Ctd>Все остальные серверы — отклонять (fail)\u003C/td>\u003Ctd>Нет\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>~all\u003C/code>\u003C/td>\u003Ctd>Все остальные — подозрительны (softfail)\u003C/td>\u003Ctd>Нет\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>?all\u003C/code> / \u003Ccode>+all\u003C/code>\u003C/td>\u003Ctd>Нейтрально / разрешить всем\u003C/td>\u003Ctd>Нет\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>\u003Ccode>+all\u003C/code> не используйте никогда: это разрешение любому серверу в интернете отправлять письма от вашего имени.\u003C/p>\n\u003Ch2>~all или -all: что выбрать\u003C/h2>\n\u003Cp>Начинайте с \u003Ccode>~all\u003C/code>, переходите на \u003Ccode>-all\u003C/code>, когда уверены, что в записи перечислены все сервисы, которые отправляют почту с домена.\u003C/p>\n\u003Cul>\u003Cli>\u003Ccode>~all\u003C/code> безопаснее: если вы забыли CRM или сервис рассылок, их письма попадут под подозрение, но не будут отклонены сразу.\u003C/li>\u003Cli>\u003Ccode>-all\u003C/code> строже и лучше защищает от подделки, но любая забытая система перестанет доставлять письма.\u003C/li>\u003C/ul>\n\u003Cp>Для доменов холодных рассылок, где почту отправляет только один провайдер, можно сразу ставить строгое правило.\u003C/p>\n\u003Ch2>Как настроить SPF за 10 минут\u003C/h2>\n\u003Col>\u003Cli>\u003Cstrong>Составьте список отправителей.\u003C/strong> Почтовый сервис, CRM, сервис рассылок, сайт с формами — всё, что шлёт письма от вашего домена.\u003C/li>\u003Cli>\u003Cstrong>Проверьте, нет ли уже SPF.\u003C/strong> В панели DNS найдите TXT-запись, начинающуюся с v=spf1. Если есть — редактируйте её, а не добавляйте вторую.\u003C/li>\u003Cli>\u003Cstrong>Соберите запись\u003C/strong> из шаблонов ниже: один \u003Ccode>v=spf1\u003C/code>, все \u003Ccode>include:\u003C/code> и одно финальное правило \u003Ccode>~all\u003C/code> или \u003Ccode>-all\u003C/code>.\u003C/li>\u003Cli>\u003Cstrong>Добавьте TXT-запись\u003C/strong> для корня домена (хост \u003Ccode>@\u003C/code>) у регистратора или DNS-провайдера.\u003C/li>\u003Cli>\u003Cstrong>Подождите обновления DNS\u003C/strong> — обычно от нескольких минут до нескольких часов, в зависимости от TTL.\u003C/li>\u003Cli>\u003Cstrong>Проверьте результат\u003C/strong>: отправьте письмо на Gmail и в «Показать оригинал» найдите \u003Ccode>SPF: PASS\u003C/code>.\u003C/li>\u003C/ol>\n\u003Cp>В Holymailer этот шаг не нужен: SPF, DKIM, DMARC и MX \u003Ca href=\"https://holymailer.com/ru/capabilities\">настраиваются автоматически\u003C/a> при регистрации или делегировании домена и проверяются ежедневно.\u003C/p>\n\u003Ch2>Готовые SPF-записи для популярных почтовых сервисов\u003C/h2>\n\u003Cp>Скопируйте строку для своего сервиса и сверьте с актуальной справкой провайдера перед публикацией в DNS.\u003C/p>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cstrong>Сервис\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>TXT-запись для хоста @\u003C/strong>\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>Яндекс 360\u003C/td>\u003Ctd>\u003Ccode>v=spf1 redirect=_spf.yandex.net\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>VK WorkSpace (Mail.ru)\u003C/td>\u003Ctd>\u003Ccode>v=spf1 redirect=_spf.mail.ru\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Google Workspace\u003C/td>\u003Ctd>\u003Ccode>v=spf1 include:_spf.google.com ~all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Microsoft 365\u003C/td>\u003Ctd>\u003Ccode>v=spf1 include:spf.protection.outlook.com -all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Google Workspace + сервис рассылок\u003C/td>\u003Ctd>\u003Ccode>v=spf1 include:_spf.google.com include:[домен из справки сервиса] ~all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Яндекс 360 + свой сервер\u003C/td>\u003Ctd>\u003Ccode>v=spf1 include:_spf.yandex.net ip4:[IP сервера] ~all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Домен, с которого почта не отправляется\u003C/td>\u003Ctd>\u003Ccode>v=spf1 -all\u003C/code>\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Cp>\u003Ccode>redirect=\u003C/code> подходит, только если почту отправляет один сервис. Если их несколько, замените его на \u003Ccode>include:\u003C/code> и добавьте в конец \u003Ccode>~all\u003C/code>.\u003C/p>\n\u003Ch2>7 ошибок, из-за которых SPF не работает\u003C/h2>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003Cstrong>Ошибка\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Что происходит\u003C/strong>\u003C/th>\u003Cth>\u003Cstrong>Как исправить\u003C/strong>\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>Две SPF-записи на одном домене\u003C/td>\u003Ctd>Проверка даёт permerror\u003C/td>\u003Ctd>Объединить в одну строку\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Больше 10 DNS-запросов\u003C/td>\u003Ctd>permerror, SPF считается непройденным\u003C/td>\u003Ctd>Убрать неиспользуемые include, заменить a и mx на ip4\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Забыли сервис рассылок или CRM\u003C/td>\u003Ctd>Их письма получают softfail или fail\u003C/td>\u003Ctd>Добавить include из справки сервиса\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>+all\u003C/code> в конце\u003C/td>\u003Ctd>Писать от вашего имени может любой\u003C/td>\u003Ctd>Заменить на \u003Ccode>~all\u003C/code> или \u003Ccode>-all\u003C/code>\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Запись на не том хосте\u003C/td>\u003Ctd>Результат none\u003C/td>\u003Ctd>Добавить для \u003Ccode>@\u003C/code> или нужного поддомена\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Рассылка с поддомена без своей записи\u003C/td>\u003Ctd>SPF не наследуется поддоменами\u003C/td>\u003Ctd>Создать SPF для каждого поддомена-отправителя\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Опечатки: пробел после двоеточия, два all, кавычки внутри\u003C/td>\u003Ctd>permerror\u003C/td>\u003Ctd>Проверить запись валидатором SPF\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2>Как проверить SPF-запись\u003C/h2>\n\u003Cp>Есть три способа, от простого к техническому:\u003C/p>\n\u003Cul>\u003Cli>\u003Cstrong>Заголовки письма.\u003C/strong> В Gmail откройте «Показать оригинал». Строка \u003Ccode>SPF: PASS\u003C/code> означает, что всё в порядке. Mail.ru описывает ту же проверку \u003Ca href=\"https://help.mail.ru/developers/notes/authentication/\">в справке для\u003C/a> \u003Ca href=\"https://help.mail.ru/developers/notes/authentication/\">разработчиков.\u003C/a>\u003C/li>\u003Cli>\u003Cstrong>Команда в терминале.\u003C/strong> \u003Ccode>nslookup -type=txt company.ru\u003C/code> или \u003Ccode>dig TXT company.ru +short\u003C/code> покажут опубликованную запись.\u003C/li>\u003Cli>\u003Cstrong>Онлайн-валидатор SPF.\u003C/strong> Посчитает DNS-запросы и найдёт синтаксические ошибки.\u003C/li>\u003C/ul>\n\u003Ch2>Часто задаваемые вопросы\u003C/h2>\n\u003Cp>\u003Cstrong>Что такое SPF-запись простыми словами?\u003C/strong>\u003C/p>\n\u003Cp>Это список серверов, которым разрешено отправлять письма от вашего домена. Он хранится в DNS в виде TXT-записи, и почтовые сервисы сверяются с ним при каждом входящем письме.\u003C/p>\n\u003Cp>\u003Cstrong>Можно ли сделать две SPF-записи для одного домена?\u003C/strong>\u003C/p>\n\u003Cp>Нет. RFC 7208 запрещает несколько SPF-записей на одном домене, и проверка вернёт ошибку. Все сервисы объединяют в одну строку через include.\u003C/p>\n\u003Cp>\u003Cstrong>Что выбрать: ~all или -all?\u003C/strong>\u003C/p>\n\u003Cp>\u003Ccode>~all\u003C/code> — если не уверены, что учли всех отправителей. \u003Ccode>-all\u003C/code> — когда список точно полный, например на отдельном домене для рассылок с одним провайдером.\u003C/p>\n\u003Cp>\u003Cstrong>Сколько времени применяется SPF-запись?\u003C/strong>\u003C/p>\n\u003Cp>Обычно от нескольких минут до нескольких часов. Срок зависит от TTL записи и DNS-провайдера.\u003C/p>\n\u003Cp>\u003Cstrong>Нужен ли SPF, если уже настроен DKIM?\u003C/strong>\u003C/p>\n\u003Cp>Да. Gmail требует и SPF, и DKIM от отправителей с объёмом от 5 000 писем в день, а Mail.ru ждёт прохождения SPF, DKIM и DMARC от всех рассылок. Механизмы дополняют друг друга.\u003C/p>\n\u003Cp>\u003Cstrong>Что значит SPF softfail в заголовках?\u003C/strong>\u003C/p>\n\u003Cp>Письмо отправлено с сервера, которого нет в записи, а запись заканчивается на \u003Ccode>~all\u003C/code>. Добавьте этот сервис через include или ip4.\u003C/p>\n\u003Ch2>Источники\u003C/h2>\n\u003Cul>\u003Cli>\u003Ca href=\"https://datatracker.ietf.org/doc/html/rfc7208\">RFC 7208: Sender Policy Framework\u003C/a> — стандарт SPF, 2014.\u003C/li>\u003Cli>\u003Ca href=\"https://support.google.com/mail/answer/81126?hl=en\">Google: Email sender guidelines\u003C/a> — действуют с 1 февраля 2024.\u003C/li>\u003Cli>\u003Ca href=\"https://help.mail.ru/developers/mailing_rules/technical/\">Mail.ru: технические требования к рассылкам.\u003C/a>\u003C/li>\u003Cli>\u003Ca href=\"https://help.mail.ru/developers/notes/authentication/\">Mail.ru: как проверить SPF, DKIM, DMARC в письме.\u003C/a>\u003C/li>\u003Cli>\u003Ca href=\"https://holymailer.com/ru/capabilities\">Holymailer: возможности.\u003C/a>\u003C/li>\u003C/ul>\n\u003Ch2>Разметка JSON-LD\u003C/h2>\n\u003Cp>{ &#34;@context&#34;: &#34;https://schema.org&#34;, &#34;@graph&#34;: [ { &#34;@type&#34;: &#34;Article&#34;, &#34;headline&#34;: &#34;SPF-запись: как настроить за 10 минут + готовые шаблоны&#34;, &#34;author&#34;: {&#34;@type&#34;: &#34;Person&#34;, &#34;name&#34;: &#34;[Имя автора]&#34;, &#34;jobTitle&#34;: &#34;[Должность]&#34;}, &#34;datePublished&#34;: &#34;2026-09-30&#34;, &#34;dateModified&#34;: &#34;2026-09-30&#34;, &#34;publisher&#34;: {&#34;@type&#34;: &#34;Organization&#34;, &#34;name&#34;: &#34;Holymailer&#34;, &#34;url&#34;: &#34;https://holymailer.com&#34;} }, { &#34;@type&#34;: &#34;HowTo&#34;, &#34;name&#34;: &#34;Как настроить SPF за 10 минут&#34;, &#34;step&#34;: [ {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Составьте список всех сервисов, которые отправляют письма от вашего домена.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Проверьте, нет ли уже TXT-записи с v=spf1.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Соберите одну запись: v=spf1, все include и финальное правило ~all или -all.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Добавьте TXT-запись для хоста @ у DNS-провайдера.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Дождитесь обновления DNS.&#34;}, {&#34;@type&#34;: &#34;HowToStep&#34;, &#34;text&#34;: &#34;Отправьте тестовое письмо на Gmail и проверьте SPF: PASS в оригинале письма.&#34;} ] }, { &#34;@type&#34;: &#34;FAQPage&#34;, &#34;mainEntity&#34;: [ {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Что такое SPF-запись простыми словами?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;Это список серверов, которым разрешено отправлять письма от вашего домена. Он хранится в DNS в виде TXT-записи.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Можно ли сделать две SPF-записи для одного домена?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;Нет. RFC 7208 запрещает несколько SPF-записей на одном домене. Все сервисы объединяют в одну строку через include.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Что выбрать: ~all или -all?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;~all — если не уверены, что учли всех отправителей. -all — когда список точно полный.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Сколько времени применяется SPF-запись?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;Обычно от нескольких минут до нескольких часов, в зависимости от TTL записи и DNS-провайдера.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Нужен ли SPF, если уже настроен DKIM?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;Да. Gmail требует и SPF, и DKIM от отправителей с объёмом от 5 000 писем в день, а Mail.ru ждёт прохождения SPF, DKIM и DMARC от всех рассылок.&#34;}}, {&#34;@type&#34;: &#34;Question&#34;, &#34;name&#34;: &#34;Что значит SPF softfail в заголовках?&#34;, &#34;acceptedAnswer&#34;: {&#34;@type&#34;: &#34;Answer&#34;, &#34;text&#34;: &#34;Письмо отправлено с сервера, которого нет в записи, а запись заканчивается на ~all. Добавьте этот сервис через include или ip4.&#34;}} ] } ] }\u003C/p>","2026-10-01T15:14:16.272Z","2026-10-01T15:14:16.275Z","ru",{"pagination":30},{"page":31,"pageSize":32,"pageCount":31,"total":31},1,25,{"data":34,"meta":36},[35],{"id":6,"documentId":7,"title":8,"slug":9,"definition":10},{"pagination":37},{"page":31,"pageSize":38,"pageCount":31,"total":31},7]