{"id":30046,"date":"2024-06-06T11:18:00","date_gmt":"2024-06-06T11:18:00","guid":{"rendered":"https:\/\/easydmarc.com\/blog\/?p=30046"},"modified":"2026-07-30T09:08:40","modified_gmt":"2026-07-30T09:08:40","slug":"spf-record-syntax-structure-and-components","status":"publish","type":"post","link":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/","title":{"rendered":"SPF Record Syntax: Structure and Components"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">SPF records define which mail servers are authorized to send email on behalf of a domain. As email-based threats continue to increase, accurate SPF configuration has become a core part of domain authentication governance. SPF is also a foundational requirement for DMARC compliance. When SPF and DMARC are configured correctly and aligned, they work together to reduce domain spoofing risk across inbound mail flows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SPF record syntax follows a specific structure, and implementation errors are common when the components are not clearly understood. This guide covers SPF record syntax, format, and structure in detail, including mechanisms, qualifiers, and modifiers, so administrators can configure and maintain SPF records accurately.<\/p>\n\n\n\n<h2 id=\"h-spf-record-basic-syntax\" class=\"wp-block-heading\"><b>SPF Record: Basic Syntax<\/b><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An SPF record is a type of DNS record that lists all the IPs permitted to send an email using a specific domain. To understand <a href=\"https:\/\/easydmarc.com\/blog\/what-is-sender-policy-framework-spf-a-bit-of-history\/\">what SPF is<\/a>, think of it as a way to publish which servers are authorized to send email for your domain.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If a server outside the list sends mail for that domain, the message can return an SPF fail result, and the receiving server decides how to handle it.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This authentication standard helps receiving servers identify unauthorized sending sources. It can also support deliverability because authenticated messages are less likely to be rejected or marked as spam. Implementing SPF and DKIM together with DMARC is the best way to strengthen domain authentication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SPF records contain instructions telling receiving servers how to validate emails from your domain and what to do when authentication fails. A specific component represents each instruction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following examples break down each element of the record:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><mark style=\"background-color:#f5efe0\" class=\"has-inline-color\">v=spf1 ip4=192.0.2.0 ip4=192.0.2.1 include:examplesender.net -all<\/mark><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The above example indicates the record type, lists approved IP addresses, and includes an authorized third-party. It also tells receiving servers how to handle non-compliant emails. Here\u2019s how each element of the SPF record does this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>v=spf1<\/strong> tells the recipient server that this is an SPF record. All SPF records must start like this.<\/li>\n\n\n\n<li>The next part of the SPF record syntax indicates the IP addresses authorized to send emails for this domain. In the above example, we have&nbsp; <strong>ip4:192.0.2.0<\/strong> and <strong>ip4:192.0.2.1.<\/strong><\/li>\n\n\n\n<li>The \u2018<strong>include:examplesender.net<\/strong>\u2019 portion of the above example indicates third-parties authorized to send emails for the domain. The \u2018include\u2019 tag tells recipient servers to check the included domain\u2019s (examplesender.net) SPF record for IP addresses that are also authorized. Numerous domains can be included within an SPF record, but only for valid domains.<\/li>\n\n\n\n<li>Lastly, -all returns an <a href=\"https:\/\/easydmarc.com\/blog\/spf-hard-fail\/\">SPF hard fail<\/a> result for senders not listed in the SPF record. In most environments, ~all is recommended instead. Hard fail does not add meaningful enforcement when DMARC is configured, and misconfigured hard fail policies can affect legitimate mail flows.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Two additional examples illustrate common configurations. The below SPF record example<strong> <\/strong>authorizes all servers with an IP address between 192.168.0.0 and 192.168.255.255, as well as Gmail accounts using google.com.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><mark style=\"background-color:#f5efe0\" class=\"has-inline-color\">v=spf1 ip4:192.168.0.0\/16 include:_spf.google.com ~all<\/mark><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following SPF record example<strong> <\/strong>is similar. It authorizes servers between 192.168.0.0 and 192.168.255.255, Gmail accounts, and includes a third-party service: Send Your Mail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><mark style=\"background-color:#f5efe0\" class=\"has-inline-color\">v=spf1 ip4:192.168.0.0\/16 include:_spf.google.com include:sendyourmail.com ~all<\/mark><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you only want Gmail accounts sending emails from your organization, the SPF record syntax would look like this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><mark style=\"background-color:#f5efe0\" class=\"has-inline-color\">v=spf1 a mx include:_spf.google.com ~all<\/mark><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This SPF record syntax tells recipient servers that messages sent from the domain\u2019s A record, MX record, or Google\u2019s included SPF record should be treated as valid, while other sources return a soft fail result.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can use EasyDMARC\u2019s free tool to <a href=\"https:\/\/easydmarc.com\/tools\/spf-record-generator\">generate SPF records<\/a>. But you must first understand each component, how it works, and what it means. Let\u2019s take a look at the advanced SPF record structure.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/app.easydmarc.com\/register\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"256\" src=\"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/04\/Frame-1686560629-3-1024x256.jpg\" alt=\"easydmarc signup\" class=\"wp-image-61093\" srcset=\"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/04\/Frame-1686560629-3-1024x256.jpg 1024w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/04\/Frame-1686560629-3-300x75.jpg 300w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/04\/Frame-1686560629-3-768x192.jpg 768w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/04\/Frame-1686560629-3-1536x384.jpg 1536w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/04\/Frame-1686560629-3-450x113.jpg 450w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/04\/Frame-1686560629-3-1200x300.jpg 1200w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/04\/Frame-1686560629-3.jpg 1544w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 id=\"h-spf-record-advanced-syntax\" class=\"wp-block-heading\"><b>SPF Record: Advanced Syntax<\/b><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SPF records are usually published as DNS TXT records types and follow an SPF record format specification. As mentioned, it always starts with the<strong> \u2018v=\u2019<\/strong> element that denotes the SPF version used. There\u2019s only one version currently, so <strong>\u2018<\/strong>spf1<strong>\u2019<\/strong> is used.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each SPF record has specific terms that work as rules for which hosts can send emails from the domain or display additional information.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SPF record syntax comprises three major elements: SPF Mechanisms, SPF Qualifiers, and SPF Modifiers.<\/p>\n\n\n\n<h3 id=\"h-spf-mechanisms\" class=\"wp-block-heading\"><b>SPF Mechanisms<\/b><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mechanisms are SPF tags used in the SPF record structure to tell receiving servers what to match and how to deal with emails.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. all<\/strong>: It always matches and must be the last mechanism listed at the end of the SPF record. Any mechanisms after this are ignored. It also shows default results like \u2018-all\u2019 for unmatching IPs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. a<\/strong>: Defines a domain name with an A or AAAA address record as a match as it resolves to the sender\u2019s address. The current domain is used if this SPF record syntax is unspecified. It\u2019s typically applied when queries for A or AAAA records are generated in a domain with a sender\u2019s IP address.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. ip4<\/strong>: A match is successful when the sender&#8217;s IP matches the given ipv4 address or address range in the SPF record. A single IP address can be used on its own, or a range can be specified with a prefix. If no prefix is given, \/32 is used by default.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. ip6<\/strong>: A match is successful if the sender&#8217;s IP matches the given ipv6 address or address range. A single IP address can be used on its own, or a range can be specified with a prefix. If no prefix is given, \/128 is used by default.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. mx<\/strong>: This mechanism authorizes senders with an IP address matching the one contained in the MX record specified. MX records consist of an IP address and a priority value for each server meant to accept messages, which can be confirmed through an <a href=\"https:\/\/easydmarc.com\/tools\/mx-record-checker\">MX record lookup<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If an MX record of a domain contains an IP address matching the sender\u2019s IP address, the sender has permission to send emails using the domain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>6. ptr:<\/strong> Defines the authorized domain using PTR records which resolve IP addresses to subdomains or domains (the opposite of DNS A records). The receiving server reverse-maps the sending IP address using a <a href=\"https:\/\/easydmarc.com\/tools\/ptr-record-checker\">PTR record lookup<\/a> to find associated domain names.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For each exact domain match or subdomain, a forward lookup is then performed to find the IP address. If the sending IP address is the same as any IP addresses found during the lookup, then it\u2019s a match and the email is validated.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The PTR mechanism is slow and unreliable as it requires multiple lookups. As such, it is deprecated and <strong>must not<\/strong> be used, according to the <a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7208#section-5.5\">RFC 7208 guidelines<\/a>.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some receiving servers ignore the PTR mechanism or even the entire SPF record with the PTR mechanism.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>7. exists<\/strong>: This SPF mechanism executes a DNS A record search for the domain provided. A match happens when a valid A record is found, regardless of the actual lookup result. Using macros, you can set up per-user exceptions with this mechanism.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>8. include<\/strong>: This mechanism is used to authorize third-party email senders by specifying their domains. A sender is authorized when its IP address matches the IP addresses or domains contained in the SPF record of the listed domain. A failure result is returned when no SPF record is found for the listed third-party domain. (Permanent errors are typically caused by duplicate mechanisms, void lookups, or exceeding the 10 DNS lookup limit.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For larger domains with many third-party senders, <a href=\"https:\/\/easydmarc.com\/blog\/managed-spf-for-large-domains\/\">managed SPF for large domains<\/a> can make these updates easier to maintain.<\/p>\n\n\n\n<h3 id=\"h-spf-qualifiers\" class=\"wp-block-heading\"><b>SPF Qualifiers<\/b><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">An SPF Qualifier is an optional prefix to a mechanism. Adding an SPF record to your DNS with SPF Qualifiers tells receiving mail servers how to treat an email when there\u2019s a match with a Mechanism value.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mechanisms are verified in the order of their occurrence in an SPF record. If a Mechanism lacks a Qualifier and there\u2019s a match, SPF authentication passes. However, when there\u2019s no match, the default action is neutral; the email message neither passes nor fails authentication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Each mechanism can be combined with one of four qualifiers.<\/p>\n\n\n\n<table style=\"width:100%; border-collapse:collapse; table-layout:fixed;\">\n  <thead>\n    <tr>\n      <th style=\"width:90px; padding:16px; border:1px solid #ddd; text-align:left;\">Qualifier<\/th>\n      <th style=\"width:120px; padding:16px; border:1px solid #ddd; text-align:left;\">Result<\/th>\n      <th style=\"padding:16px; border:1px solid #ddd; text-align:left;\">Action Taken by Receiving Server With a Match<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td style=\"padding:16px; border:1px solid #ddd; vertical-align:top;\">+<\/td>\n      <td style=\"padding:16px; border:1px solid #ddd; vertical-align:top;\">Pass<\/td>\n      <td style=\"padding:16px; border:1px solid #ddd;\">\n        Email message passes authentication and the server is permitted to send emails. Messages are authenticated and this is the default action taken in case of no Qualifier.\n      <\/td>\n    <\/tr>\n\n    <tr>\n      <td style=\"padding:16px; border:1px solid #ddd; vertical-align:top;\">\u2212<\/td>\n      <td style=\"padding:16px; border:1px solid #ddd; vertical-align:top;\">Fail<\/td>\n      <td style=\"padding:16px; border:1px solid #ddd;\">\n        Email message fails authentication as the sending server isn\u2019t authorized to send emails for the domain. The SPF record returns a fail result because the sending server is not authorized. The receiving server decides whether to reject, flag, or handle the message another way.\n      <\/td>\n    <\/tr>\n\n    <tr>\n      <td style=\"padding:16px; border:1px solid #ddd; vertical-align:top;\">~<\/td>\n      <td style=\"padding:16px; border:1px solid #ddd; vertical-align:top;\">SoftFail<\/td>\n      <td style=\"padding:16px; border:1px solid #ddd;\">\n        The message returns a soft fail result. The receiving server may accept it, flag it, or treat it as suspicious based on local policy.\n      <\/td>\n    <\/tr>\n\n    <tr>\n      <td style=\"padding:16px; border:1px solid #ddd; vertical-align:top;\">?<\/td>\n      <td style=\"padding:16px; border:1px solid #ddd; vertical-align:top;\">Neutral<\/td>\n      <td style=\"padding:16px; border:1px solid #ddd;\">\n        Email message neither passes nor fails authentication as the SPF record doesn\u2019t explicitly state whether an IP address is authorized. Indicates that no match was found for the sender when checked against your authorized IP addresses and domains.\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n\n\n<p class=\"wp-block-paragraph\">For most implementations, ~all is the recommended qualifier. Hard fail (-all) does not provide additional enforcement benefit in environments where DMARC is configured, and should not be treated as a stronger or preferred alternative to soft fail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">Other returned results include:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>None: <\/b> <span style=\"font-weight: 400;\">No SPF record was found for the domain, or the SPF record didn\u2019t return a result.<\/span><\/li>\n\n\n\n<li><b>TempError: <\/b><span style=\"font-weight: 400;\">A transient error usually due to DNS configuration issues.<\/span><\/li>\n\n\n\n<li><b>PermError: <\/b><span style=\"font-weight: 400;\">A permanent error usually due to <\/span>SPF<b> <\/b>record<b> <\/b>syntax<span style=\"font-weight: 400;\"> or formatting errors.<\/span><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/app.easydmarc.com\/register\"><img decoding=\"async\" width=\"1024\" height=\"257\" src=\"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/05\/Frame-1686560623-1-1-1024x257.jpg\" alt=\"Try EasyDMARC for free\" class=\"wp-image-62185\" srcset=\"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/05\/Frame-1686560623-1-1-1024x257.jpg 1024w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/05\/Frame-1686560623-1-1-300x75.jpg 300w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/05\/Frame-1686560623-1-1-768x192.jpg 768w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/05\/Frame-1686560623-1-1-1536x385.jpg 1536w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/05\/Frame-1686560623-1-1-450x113.jpg 450w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/05\/Frame-1686560623-1-1-1200x301.jpg 1200w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2026\/05\/Frame-1686560623-1-1.jpg 1544w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 id=\"h-spf-modifiers\" class=\"wp-block-heading\"><b>SPF Modifiers<\/b><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">SPF Modifiers decide how the SPF record format works. They consist of name or value pairs separated by the<strong> \u2018=\u2019 <\/strong>symbol, pointing out additional information, specifying exceptions to rules, or changing certain defaults.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The redirect and exp modifiers should appear at the end of the SPF record and must not appear more than once.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The \u2018redirect\u2019 Modifier directs to other SPF records for authentication. The redirect modifier is typically used when multiple domains need to share identical SPF record content.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Only use this SPF Modifier if you control all the domains. The \u2018include\u2019 SPF Mechanism should be used for authorized domains outside of your control.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the \u2018all\u2019 Mechanism appears in the SPF record, then the \u2018redirect\u2019 Modifier is ignored.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The \u2018exp\u2019 Modifier explains why the receiving server returned a Fail SPF Qualifier when a mechanism matches.<br \/><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For long or complex SPF records, review <a href=\"https:\/\/easydmarc.com\/blog\/best-spf-flattening-tools\/\">SPF flattening tools<\/a> before making DNS changes.<\/p>\n\n\n\n<h2 id=\"h-tips-for-spf-records\" class=\"wp-block-heading\"><b>Tips for SPF Records<\/b><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before you check your record, keep the following tips in mind:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A domain can\u2019t have more than one SPF record.<\/li>\n\n\n\n<li>Use lowercase SPF syntax for consistency.<\/li>\n\n\n\n<li>Keep each TXT string within 255 characters and avoid records that exceed DNS lookup limits.<\/li>\n\n\n\n<li>Remove any SPF Mechanisms resolving to the same domain.<\/li>\n\n\n\n<li>Remove any \u2018ip4\u2019 and \u2018ip6\u2019 SPF Mechanisms not in use and see whether any address ranges can be merged.<\/li>\n\n\n\n<li>You can create a subdomain to store SPF information by using \u2018_spf.domain.com.\u2019 This is ideal for large organizations with too many IP addresses to include in a single SPF record.&nbsp;<\/li>\n\n\n\n<li>The <a href=\"https:\/\/easydmarc.com\/tools\/spf-lookup\">SPF checker<\/a> is available as a free tool for record validation.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/easydmarc.com\/contact-us\"><img decoding=\"async\" width=\"1024\" height=\"256\" src=\"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2025\/10\/Frame-1686560627-1024x256.jpg\" alt=\"Start protecting your enterprise email with EasyDMARC.\" class=\"wp-image-54529\" srcset=\"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2025\/10\/Frame-1686560627-1024x256.jpg 1024w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2025\/10\/Frame-1686560627-300x75.jpg 300w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2025\/10\/Frame-1686560627-768x192.jpg 768w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2025\/10\/Frame-1686560627-1536x384.jpg 1536w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2025\/10\/Frame-1686560627-450x113.jpg 450w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2025\/10\/Frame-1686560627-1200x300.jpg 1200w, https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2025\/10\/Frame-1686560627.jpg 1544w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 id=\"h-summary\" class=\"wp-block-heading\"><b>Summary<\/b><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">The SPF record is a crucial part of your domain\u2019s DNS record as it tells receiving mail servers how to authenticate emails from your domain. Technology-reliant business owners must pair SPF with DKIM and DMARC to increase protection against spoofing and phishing attacks using their names.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-weight: 400;\">EasyDMARC\u2019s&nbsp;<\/span><a href=\"https:\/\/easydmarc.com\/tools\/easy-spf\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"font-weight: 400;\">EasySPF<\/span><\/a><span style=\"font-weight: 400;\"> tool takes your email-sending sources management to a higher level. You can also reach out if you have any other difficulties implementing SPF. We\u2019re here to help.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SPF records define which mail servers are authorized &#8230;<\/p>\n","protected":false},"author":58,"featured_media":62930,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[204,203,286],"tags":[],"class_list":["post-30046","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-email-security","category-spf"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.2 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SPF Record Syntax: Structure and Components | EasyDMARC<\/title>\n<meta name=\"description\" content=\"Learn about SPF record syntax, structure, and components with EasyDMARC\u2019s detailed guide. Understand how to configure SPF for effective security.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SPF Record Syntax: Structure and Components\" \/>\n<meta property=\"og:description\" content=\"Learn about SPF record syntax, structure, and components with EasyDMARC\u2019s detailed guide. Understand how to configure SPF for effective security.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/\" \/>\n<meta property=\"og:site_name\" content=\"EasyDMARC\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/EasyDMARC\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-06T11:18:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-30T09:08:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2024\/06\/SPF-Syntax-Hero-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"910\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ruben Khachatryan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@easydmarc\" \/>\n<meta name=\"twitter:site\" content=\"@easydmarc\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ruben Khachatryan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/\"},\"author\":{\"name\":\"Ruben Khachatryan\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/#\\\/schema\\\/person\\\/9766f07d4ef9704ee4f6810b32788c1c\"},\"headline\":\"SPF Record Syntax: Structure and Components\",\"datePublished\":\"2024-06-06T11:18:00+00:00\",\"dateModified\":\"2026-07-30T09:08:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/\"},\"wordCount\":1944,\"publisher\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/SPF-Syntax-Hero-3.png\",\"articleSection\":[\"Blog\",\"Email Security\",\"SPF\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/\",\"url\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/\",\"name\":\"SPF Record Syntax: Structure and Components | EasyDMARC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/SPF-Syntax-Hero-3.png\",\"datePublished\":\"2024-06-06T11:18:00+00:00\",\"dateModified\":\"2026-07-30T09:08:40+00:00\",\"description\":\"Learn about SPF record syntax, structure, and components with EasyDMARC\u2019s detailed guide. Understand how to configure SPF for effective security.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#primaryimage\",\"url\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/SPF-Syntax-Hero-3.png\",\"contentUrl\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/SPF-Syntax-Hero-3.png\",\"width\":1440,\"height\":910,\"caption\":\"SPF Record Syntax: Structure and Components\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/easydmarc.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/category\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Email Security\",\"item\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/category\\\/blog\\\/email-security\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"SPF\",\"item\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/category\\\/blog\\\/email-security\\\/spf\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"SPF Record Syntax: Structure and Components\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/\",\"name\":\"EasyDMARC\",\"description\":\"Blog\",\"publisher\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/#organization\",\"name\":\"EasyDMARC\",\"url\":\"https:\\\/\\\/easydmarc.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/easydmarc.com\\\/img\\\/logo.png\"},\"image\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/EasyDMARC\\\/\",\"https:\\\/\\\/x.com\\\/easydmarc\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/easydmarc\\\/mycompany\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/#\\\/schema\\\/person\\\/9766f07d4ef9704ee4f6810b32788c1c\",\"name\":\"Ruben Khachatryan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5f27eee0b7b7d4f7b6d1b4b7a485211ddd89e0e9205459180fc36e502b22ee12?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5f27eee0b7b7d4f7b6d1b4b7a485211ddd89e0e9205459180fc36e502b22ee12?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5f27eee0b7b7d4f7b6d1b4b7a485211ddd89e0e9205459180fc36e502b22ee12?s=96&r=g\",\"caption\":\"Ruben Khachatryan\"},\"url\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/author\\\/ruben\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SPF Record Syntax: Structure and Components | EasyDMARC","description":"Learn about SPF record syntax, structure, and components with EasyDMARC\u2019s detailed guide. Understand how to configure SPF for effective security.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/","og_locale":"en_US","og_type":"article","og_title":"SPF Record Syntax: Structure and Components","og_description":"Learn about SPF record syntax, structure, and components with EasyDMARC\u2019s detailed guide. Understand how to configure SPF for effective security.","og_url":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/","og_site_name":"EasyDMARC","article_publisher":"https:\/\/www.facebook.com\/EasyDMARC\/","article_published_time":"2024-06-06T11:18:00+00:00","article_modified_time":"2026-07-30T09:08:40+00:00","og_image":[{"width":1440,"height":910,"url":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2024\/06\/SPF-Syntax-Hero-3.png","type":"image\/png"}],"author":"Ruben Khachatryan","twitter_card":"summary_large_image","twitter_creator":"@easydmarc","twitter_site":"@easydmarc","twitter_misc":{"Written by":"Ruben Khachatryan","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#article","isPartOf":{"@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/"},"author":{"name":"Ruben Khachatryan","@id":"https:\/\/easydmarc.com\/blog\/#\/schema\/person\/9766f07d4ef9704ee4f6810b32788c1c"},"headline":"SPF Record Syntax: Structure and Components","datePublished":"2024-06-06T11:18:00+00:00","dateModified":"2026-07-30T09:08:40+00:00","mainEntityOfPage":{"@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/"},"wordCount":1944,"publisher":{"@id":"https:\/\/easydmarc.com\/blog\/#organization"},"image":{"@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#primaryimage"},"thumbnailUrl":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2024\/06\/SPF-Syntax-Hero-3.png","articleSection":["Blog","Email Security","SPF"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/","url":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/","name":"SPF Record Syntax: Structure and Components | EasyDMARC","isPartOf":{"@id":"https:\/\/easydmarc.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#primaryimage"},"image":{"@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#primaryimage"},"thumbnailUrl":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2024\/06\/SPF-Syntax-Hero-3.png","datePublished":"2024-06-06T11:18:00+00:00","dateModified":"2026-07-30T09:08:40+00:00","description":"Learn about SPF record syntax, structure, and components with EasyDMARC\u2019s detailed guide. Understand how to configure SPF for effective security.","breadcrumb":{"@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#primaryimage","url":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2024\/06\/SPF-Syntax-Hero-3.png","contentUrl":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2024\/06\/SPF-Syntax-Hero-3.png","width":1440,"height":910,"caption":"SPF Record Syntax: Structure and Components"},{"@type":"BreadcrumbList","@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/easydmarc.com\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/easydmarc.com\/blog\/category\/blog\/"},{"@type":"ListItem","position":3,"name":"Email Security","item":"https:\/\/easydmarc.com\/blog\/category\/blog\/email-security\/"},{"@type":"ListItem","position":4,"name":"SPF","item":"https:\/\/easydmarc.com\/blog\/category\/blog\/email-security\/spf\/"},{"@type":"ListItem","position":5,"name":"SPF Record Syntax: Structure and Components"}]},{"@type":"WebSite","@id":"https:\/\/easydmarc.com\/blog\/#website","url":"https:\/\/easydmarc.com\/blog\/","name":"EasyDMARC","description":"Blog","publisher":{"@id":"https:\/\/easydmarc.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/easydmarc.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/easydmarc.com\/#organization","name":"EasyDMARC","url":"https:\/\/easydmarc.com\/","logo":{"@type":"ImageObject","url":"https:\/\/easydmarc.com\/img\/logo.png"},"image":{"@id":"https:\/\/easydmarc.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/EasyDMARC\/","https:\/\/x.com\/easydmarc","https:\/\/www.linkedin.com\/company\/easydmarc\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/easydmarc.com\/blog\/#\/schema\/person\/9766f07d4ef9704ee4f6810b32788c1c","name":"Ruben Khachatryan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5f27eee0b7b7d4f7b6d1b4b7a485211ddd89e0e9205459180fc36e502b22ee12?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5f27eee0b7b7d4f7b6d1b4b7a485211ddd89e0e9205459180fc36e502b22ee12?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f27eee0b7b7d4f7b6d1b4b7a485211ddd89e0e9205459180fc36e502b22ee12?s=96&r=g","caption":"Ruben Khachatryan"},"url":"https:\/\/easydmarc.com\/blog\/author\/ruben\/"}]}},"jetpack_featured_media_url":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2024\/06\/SPF-Syntax-Hero-3.png","_links":{"self":[{"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/posts\/30046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/users\/58"}],"replies":[{"embeddable":true,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/comments?post=30046"}],"version-history":[{"count":8,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/posts\/30046\/revisions"}],"predecessor-version":[{"id":62938,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/posts\/30046\/revisions\/62938"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/media\/62930"}],"wp:attachment":[{"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/media?parent=30046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/categories?post=30046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/tags?post=30046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}