{"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-01-21T07:41:28","modified_gmt":"2026-01-21T07:41:28","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><span style=\"font-weight: 400;\">Understanding <\/span><a href=\"https:\/\/easydmarc.com\/blog\/what-is-sender-policy-framework-spf-a-bit-of-history\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"font-weight: 400;\">what SPF is<\/span><\/a><span style=\"font-weight: 400;\"> and bringing it into use is important for technology-driven businesses as the number of phishing and spoofing attacks rise. SPF or the Sender Policy Framework record is also necessary for DMARC compliance. Both protocols work together to avert email forgery of your domain or email account.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">SPF records are complicated and can lead to implementation issues if done incorrectly. <\/span><b>SPF record syntax<\/b><span style=\"font-weight: 400;\"> comprises certain terminologies that can be challenging to understand. Not to worry. Below, you\u2019ll learn everything about the <\/span><b>SPF record structure<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/uac.easydmarc.com\/realms\/easydmarc\/protocol\/openid-connect\/registrations?client_id=dmarc-app&amp;response_type=code&amp;scope=openid+email&amp;redirect_uri=https%3A%2F%2Fapp.easydmarc.com%2Flogin%2Fcallback&amp;ui_locales=US&amp;state=eyJ1c2VySXAiOiI5MS4xMDMuMjUwLjE3MyIsImdvVXJsIjoiIiwibG9naW5PcHRpb25zIjp7fX0%3D&amp;_gl=1*175nfxs*_gcl_au*MTYyMzQ3Nzc4Ni4xNzQ4NjExMzgzLjcwNjIyNTk4Ny4xNzQ5NTYzMzczLjE3NDk1NjMzNzI.\" style=\"background-color:#3fbdf7\">Start a free trial<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-spf-record-basic-syntax\"><b>SPF Record: Basic Syntax<\/b><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">An SPF record is a type of DNS record that lists all the IPs permitted to send an email using a specific domain. If any server outside the list tries to send an email using that domain, it\u2019ll be marked as unauthorized and rejected by a recipient\u2019s mailbox.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Thus, organizations must <\/span><span style=\"font-weight: 400;\">create SPF records<\/span><span style=\"font-weight: 400;\"> for cybersecurity.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">This authentication standard is one way to protect your domain against spoofing and phishing. It also prevents your emails from getting marked as spam by recipients\u2019 mailboxes. Implementing <a href=\"https:\/\/easydmarc.com\/blog\/salsa-labs-spf-and-dkim-configuration\/\">SPF and DKIM<\/a> together with DMARC is the best way to secure your domain.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Let\u2019s break down each element using some <\/span><span style=\"font-weight: 400;\">SPF record examples.<\/span><span style=\"font-weight: 400;\"> Here\u2019s what basic <\/span><b>SPF record syntax <\/b><span style=\"font-weight: 400;\">looks like:<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">v=spf1 ip4=192.0.2.0 ip4=192.0.2.1 include:examplesender.net -all<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The above example indicates the record type, lists approved IP addresses and included 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:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>v=spf1<\/b><span style=\"font-weight: 400;\"> tells the recipient server that this is an SPF record. All SPF records must start like this.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">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; <\/span><b>ip4=192.0.2.0<\/b><span style=\"font-weight: 400;\"> and <\/span><b>ip4=192.0.2.1.<\/b><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">The \u2018<\/span><b>include:examplesender.net<\/b><span style=\"font-weight: 400;\">\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.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Lastly, <\/span><b>-all<\/b><span style=\"font-weight: 400;\"> instructs receiving servers to reject emails with IP addresses or domains not listed in the SPF record (as they\u2019re not authorized).<\/span><\/li>\n<\/ul>\n\n\n\n<p><span style=\"font-weight: 400;\">Let\u2019s look at two more examples. The below <\/span><b>DNS SPF syntax <\/b><span style=\"font-weight: 400;\">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.<\/span><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">v=SPF1 ip4:192.168.0.0\/16 include:_SPF.google.com ~all<\/span><\/i><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The following <\/span><b>DNS SPF record syntax<\/b><span style=\"font-weight: 400;\"> 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.<\/span><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">v=SPF1 ip4:192.168.0.0\/16 include:_SPF.google.com include:sendyourmail.com ~all<\/span><\/i><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">If you only want Gmail accounts sending emails from your organization, the <\/span><b>SPF record syntax<\/b><span style=\"font-weight: 400;\"> would look like this:<\/span><\/p>\n\n\n\n<p><i><span style=\"font-weight: 400;\">v=SPF1 a mx include:_SPF.google.com ~all<\/span><\/i><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">This SPF record syntax tells recipient servers that emails sent from any host whose IP address ends with google.com should be considered valid (m), while all other messages should be discarded (a).&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">You can use EasyDMARC\u2019s free tool to<\/span> <a href=\"https:\/\/easydmarc.com\/tools\/spf-record-generator\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"font-weight: 400;\">generate SPF records<\/span><\/a><span style=\"font-weight: 400;\">. But you must first understand each component, how it works, and what it means. Let\u2019s take a look at the advanced<\/span><b> SPF record syntax<\/b><span style=\"font-weight: 400;\"> structure.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-spf-record-advanced-syntax\"><b>SPF Record: Advanced Syntax<\/b><\/h2>\n\n\n\n<p><b>SPF records for all syntax<\/b><span style=\"font-weight: 400;\"> are usually defined using a DNS TXT record type with a single string of text. As mentioned, it always starts with the<\/span><b> \u2018v=\u2019<\/b><span style=\"font-weight: 400;\"> element that denotes the SPF version used. <span data-preserver-spaces=\"true\">There&#8217;s only one version currently, so&nbsp;<\/span><strong><span data-preserver-spaces=\"true\">&#8216;SPF1&#8217;<\/span><\/strong><span data-preserver-spaces=\"true\">&nbsp;is used.&nbsp;<\/span><\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Each SPF record has specific terms that work as rules for which hosts can send emails from the domain or display additional information.&nbsp;<\/span><\/p>\n\n\n\n<p><b>SPF record syntax<\/b><span style=\"font-weight: 400;\"> comprises three major elements: SPF Mechanisms, SPF Qualifiers, and SPF Modifiers.<\/span><\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/uac.easydmarc.com\/realms\/easydmarc\/protocol\/openid-connect\/registrations?client_id=dmarc-app&amp;response_type=code&amp;scope=openid+email&amp;redirect_uri=https%3A%2F%2Fapp.easydmarc.com%2Flogin%2Fcallback&amp;ui_locales=US&amp;state=eyJ1c2VySXAiOiI5MS4xMDMuMjUwLjE3MyIsImdvVXJsIjoiIiwibG9naW5PcHRpb25zIjp7fX0%3D&amp;_gl=1*175nfxs*_gcl_au*MTYyMzQ3Nzc4Ni4xNzQ4NjExMzgzLjcwNjIyNTk4Ny4xNzQ5NTYzMzczLjE3NDk1NjMzNzI.\" style=\"background-color:#3fbdf7\">Start a free trial<\/a><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-spf-mechanisms\"><b>SPF Mechanisms<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">Mechanisms are SPF tags used in the <\/span><b>SPF record structure<\/b><span style=\"font-weight: 400;\"> to tell receiving servers what to match and how to deal with emails.<\/span><\/p>\n\n\n\n<p><b>1. ALL<\/b><span style=\"font-weight: 400;\">: 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.<\/span><\/p>\n\n\n\n<p><b>2. A<\/b><span style=\"font-weight: 400;\">: Defines a domain name with an A or AAAA address record as a match as it resolves to the sender&#8217;s address. <span data-preserver-spaces=\"true\">The current domain is used if this&nbsp;<\/span><strong><span data-preserver-spaces=\"true\">DNS SPF record syntax<\/span><\/strong><span data-preserver-spaces=\"true\">&nbsp;is unspecified.<\/span><\/span><span style=\"font-weight: 400;\"> It\u2019s typically applied when queries for A or AAAA records are generated in a domain with a sender\u2019s IP address.<\/span><\/p>\n\n\n\n<p><b>3. ip4<\/b><span style=\"font-weight: 400;\">: A match is successful when the sender is linked to the given ipv4 address range in the SPF record. It\u2019s added with a prefix that signifies a range\u2019s length. In case of no prefix, \/32 is used by default.&nbsp;<\/span><\/p>\n\n\n\n<p><b>4. ip6<\/b><span style=\"font-weight: 400;\">: A match is successful if the sender belongs to the given ipv6 address range. It\u2019s added with ip4 directive along with a prefix specifying range length. In case of no prefix, \/128 is used by default.&nbsp;<\/span><\/p>\n\n\n\n<p><b>5. MX<\/b><span style=\"font-weight: 400;\">: 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>.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n\n\n\n<p><b>6. PTR<\/b><span style=\"font-weight: 400;\">: 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.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The PTR mechanism is slow and unreliable as it requires multiple lookups. As such, it is not recommended according to the <\/span><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc7208#section-5.5\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"font-weight: 400;\">RFC 7208 guidelines<\/span><\/a><span style=\"font-weight: 400;\">. Some receiving servers ignore the PTR mechanism or even the entire SPF record with the PTR mechanism.<\/span><\/p>\n\n\n\n<p><b>7. EXISTS<\/b><span style=\"font-weight: 400;\">: 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.<\/span><\/p>\n\n\n\n<p><b>8. INCLUDE<\/b><span style=\"font-weight: 400;\">: 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 permanent error result is returned when no SPF record is found for the listed third-party domain.<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-spf-qualifiers\"><b>SPF Qualifiers<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">An SPF Qualifier is an optional prefix to a mechanism. <\/span><span style=\"font-weight: 400;\">Adding an SPF record to your DNS<\/span><span style=\"font-weight: 400;\"> with SPF Qualifiers tells receiving mail servers how to treat an email when there\u2019s a match with a Mechanism value.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">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.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Each mechanism can be combined with one of four qualifiers.<\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><b>Qualifier<\/b><\/td><td><b>Result<\/b><\/td><td><b>Action Taken by Receiving Server With a Match<\/b><\/td><\/tr><tr><td><span style=\"font-weight: 400;\">+<\/span><\/td><td><span style=\"font-weight: 400;\">Pass<\/span><\/td><td><span style=\"font-weight: 400;\">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.<\/span><\/td><\/tr><tr><td><span style=\"font-weight: 400;\">&#8211;<\/span><\/td><td><span style=\"font-weight: 400;\">Fail<\/span><\/td><td><span style=\"font-weight: 400;\">Email message fails authentication as the sending server isn\u2019t authorized to send emails for the domain. The SPF record instructs the receiving mail server to reject the email.<\/span><\/td><\/tr><tr><td><span style=\"font-weight: 400;\">~<\/span><\/td><td><span style=\"font-weight: 400;\">SoftFail<\/span><\/td><td><span style=\"font-weight: 400;\">The receiver\u2019s mailbox accepts the message, however it is marked as suspicious and lands in the spam folder.<\/span><\/td><\/tr><tr><td><span style=\"font-weight: 400;\">?<\/span><\/td><td><span style=\"font-weight: 400;\">Neutral<\/span><\/td><td><span style=\"font-weight: 400;\">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.<\/span><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><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><b>SPF record syntax<\/b><span style=\"font-weight: 400;\"> or formatting errors.<\/span><\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/uac.easydmarc.com\/realms\/easydmarc\/protocol\/openid-connect\/registrations?client_id=dmarc-app&amp;response_type=code&amp;scope=openid+email&amp;redirect_uri=https%3A%2F%2Fapp.easydmarc.com%2Flogin%2Fcallback&amp;ui_locales=US&amp;state=eyJ1c2VySXAiOiI5MS4xMDMuMjUwLjE3MyIsImdvVXJsIjoiIiwibG9naW5PcHRpb25zIjp7fX0%3D&amp;_gl=1*175nfxs*_gcl_au*MTYyMzQ3Nzc4Ni4xNzQ4NjExMzgzLjcwNjIyNTk4Ny4xNzQ5NTYzMzczLjE3NDk1NjMzNzI.\" style=\"background-color:#3fbdf7\">Start a free trial<\/a><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-spf-modifiers\"><b>SPF Modifiers<\/b><\/h3>\n\n\n\n<p><span style=\"font-weight: 400;\">SPF Modifiers decide the <\/span><b>DNS SPF record syntax<\/b><span style=\"font-weight: 400;\">\u2019s working parameters. They consist of name or value pairs separated by the<\/span><b> \u2018=\u2019 <\/b><span style=\"font-weight: 400;\">symbol, pointing out additional information, specifying exceptions to rules, or changing certain defaults.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">Modifiers can only appear once and only at the end of the SPF record. Unknown modifiers are ignored.<\/span><\/p>\n\n\n\n<p><b>The \u2018redirect\u2019 Modifier<\/b><span style=\"font-weight: 400;\"> directs to other SPF records for authentication. Experts use them when they want more than one domain to have the same SPF record content.&nbsp;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">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;<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">If the \u2018all\u2019 Mechanism appears in the SPF record, then the \u2018redirect\u2019 Modifier is ignored.<\/span><\/p>\n\n\n\n<p><span style=\"font-weight: 400;\">The<\/span><b> \u2018exp\u2019 Modifier<\/b><span style=\"font-weight: 400;\"> explains why the receiving server returned a Fail SPF Qualifier when a mechanism matches.<\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-tips-for-spf-records\"><b>Tips for SPF Records<\/b><\/h2>\n\n\n\n<p><span style=\"font-weight: 400;\">Before you <\/span><a href=\"https:\/\/easydmarc.com\/blog\/how-to-check-spf-records-with-easydmarc-tools\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span style=\"font-weight: 400;\">check your SPF record<\/span><\/a><span style=\"font-weight: 400;\">, keep the following tips in mind:<\/span><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span style=\"font-weight: 400;\">A domain can\u2019t have more than one SPF record.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">An SPF record can\u2019t contain any uppercase characters.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">A character limit of 255 characters applies to SPF records. Any string exceeding this number will result in failed authentication.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Remove any SPF Mechanisms resolving to the same domain.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\">Remove any \u2018ip4\u2019 and \u2018ip6\u2019 SPF Mechanisms not in use and see whether any address ranges can be merged.<\/span><\/li>\n\n\n\n<li><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">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.<\/span><\/span><\/span><\/span>&nbsp;<\/li>\n\n\n\n<li>Use our <a href=\"https:\/\/easydmarc.com\/tools\/spf-lookup\">SPF record analyzer<\/a> for free.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><b>Summary<\/b><\/h2>\n\n\n\n<p><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><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>Understanding what SPF is and bringing it into &#8230;<\/p>\n","protected":false},"author":1,"featured_media":31675,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"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 v27.4 (Yoast SEO v27.4) - 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-01-21T07:41:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2022\/09\/SPF-Record-Syntax_-Structure-and-Components-1.jpg\" \/>\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\/jpeg\" \/>\n<meta name=\"author\" content=\"EasyDMARC\" \/>\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=\"EasyDMARC\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 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\":\"EasyDMARC\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/#\\\/schema\\\/person\\\/449261e9810b270cc697c7c9c5b89e97\"},\"headline\":\"SPF Record Syntax: Structure and Components\",\"datePublished\":\"2024-06-06T11:18:00+00:00\",\"dateModified\":\"2026-01-21T07:41:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/\"},\"wordCount\":1794,\"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\\\/2022\\\/09\\\/SPF-Record-Syntax_-Structure-and-Components-1.jpg\",\"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\\\/2022\\\/09\\\/SPF-Record-Syntax_-Structure-and-Components-1.jpg\",\"datePublished\":\"2024-06-06T11:18:00+00:00\",\"dateModified\":\"2026-01-21T07:41:28+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\\\/2022\\\/09\\\/SPF-Record-Syntax_-Structure-and-Components-1.jpg\",\"contentUrl\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/SPF-Record-Syntax_-Structure-and-Components-1.jpg\",\"width\":1440,\"height\":910,\"caption\":\"SPF Record Syntax Structure and Components 1\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/spf-record-syntax-structure-and-components\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"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\\\/449261e9810b270cc697c7c9c5b89e97\",\"name\":\"EasyDMARC\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fcbf1ca829f8e0977fce524da20caa8a528368d0909ce48741526046e5113259?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fcbf1ca829f8e0977fce524da20caa8a528368d0909ce48741526046e5113259?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fcbf1ca829f8e0977fce524da20caa8a528368d0909ce48741526046e5113259?s=96&r=g\",\"caption\":\"EasyDMARC\"},\"url\":\"https:\\\/\\\/easydmarc.com\\\/blog\\\/author\\\/easydmarc\\\/\"}]}<\/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-01-21T07:41:28+00:00","og_image":[{"width":1440,"height":910,"url":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2022\/09\/SPF-Record-Syntax_-Structure-and-Components-1.jpg","type":"image\/jpeg"}],"author":"EasyDMARC","twitter_card":"summary_large_image","twitter_creator":"@easydmarc","twitter_site":"@easydmarc","twitter_misc":{"Written by":"EasyDMARC","Est. reading time":"8 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":"EasyDMARC","@id":"https:\/\/easydmarc.com\/blog\/#\/schema\/person\/449261e9810b270cc697c7c9c5b89e97"},"headline":"SPF Record Syntax: Structure and Components","datePublished":"2024-06-06T11:18:00+00:00","dateModified":"2026-01-21T07:41:28+00:00","mainEntityOfPage":{"@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/"},"wordCount":1794,"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\/2022\/09\/SPF-Record-Syntax_-Structure-and-Components-1.jpg","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\/2022\/09\/SPF-Record-Syntax_-Structure-and-Components-1.jpg","datePublished":"2024-06-06T11:18:00+00:00","dateModified":"2026-01-21T07:41:28+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\/2022\/09\/SPF-Record-Syntax_-Structure-and-Components-1.jpg","contentUrl":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2022\/09\/SPF-Record-Syntax_-Structure-and-Components-1.jpg","width":1440,"height":910,"caption":"SPF Record Syntax Structure and Components 1"},{"@type":"BreadcrumbList","@id":"https:\/\/easydmarc.com\/blog\/spf-record-syntax-structure-and-components\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","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\/449261e9810b270cc697c7c9c5b89e97","name":"EasyDMARC","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fcbf1ca829f8e0977fce524da20caa8a528368d0909ce48741526046e5113259?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fcbf1ca829f8e0977fce524da20caa8a528368d0909ce48741526046e5113259?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fcbf1ca829f8e0977fce524da20caa8a528368d0909ce48741526046e5113259?s=96&r=g","caption":"EasyDMARC"},"url":"https:\/\/easydmarc.com\/blog\/author\/easydmarc\/"}]}},"jetpack_featured_media_url":"https:\/\/easydmarc.com\/blog\/wp-content\/uploads\/2022\/09\/SPF-Record-Syntax_-Structure-and-Components-1.jpg","_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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/comments?post=30046"}],"version-history":[{"count":6,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/posts\/30046\/revisions"}],"predecessor-version":[{"id":57734,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/posts\/30046\/revisions\/57734"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/easydmarc.com\/blog\/wp-json\/wp\/v2\/media\/31675"}],"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}]}}