Table of Contents
Introduction
Why email authentication matters
If your emails are bouncing or landing in spam, a missing SPF or DKIM record is usually the culprit. FluentSMTP makes this less painful than most WordPress plugins, but the setup instructions are scattered. Here’s what you actually need to do.
Without proper setup, messages can be flagged as spam or blocked. That can hurt trust and impact business communications. Implementing SPF and DKIM is a foundational step in strong email hygiene.
Overview of SPF and DKIM in FluentSMTP
SPF identifies which servers are allowed to send on your domain’s behalf. DKIM adds a cryptographic signature to each message header. Both work together to prove message authenticity.
FluentSMTP guides you through generating DKIM keys, publishing a public key in DNS, and configuring signing. This combination improves deliverability across major providers like Gmail and Microsoft 365.
What you will achieve with this guide
You will learn to:
- Prepare DNS for SPF and DKIM with correct records
- Publish SPF and DKIM records that align with your sending sources
- Generate and publish DKIM keys and configure FluentSMTP to sign outbound mail
Practical steps you can take now
Audit your current sending sources first. List all platforms that send on your behalf, including marketing tools and transactional systems. This ensures you publish a comprehensive SPF record.
Use a DNS host that supports long TXT records and SPF lookups. If you exceed DNS lookup limits, break the policy into multiple subdomains and route through a single authorized relay.
Test in small batches. Send test emails to inboxes across major providers, then review SPF and DKIM pass/fail results in post-delivery reports. Adjust DNS records promptly if you see failures.
Tip This reduces the chance of SPF soft fails during traffic spikes.

1. Prepare your DNS for SPF
Understanding SPF records and their purpose
SPF is a DNS TXT record that lists the servers allowed to send email on behalf of your domain. It helps receivers distinguish legitimate messages from spoofed ones. A correct SPF record reduces backscatter and improves initial trust with inbox providers.
Collecting sending sources (servers, services, and IPs)
Gather every entity that sends mail on your domain. This includes your web server, your hosting provider, third party email services, and any marketing platforms. Compile:
- Sending IP addresses or ranges
- Sending domains or hosts
- Names of services that send on your behalf
Real world example: if you use a marketing automation platform alongside your website host and a transactional email service, extract the exact IP blocks each one uses and the domain names they present for SPF checks.
Crafting a correct SPF syntax for FluentSMTP
Draft a single SPF TXT record that lists all authorized senders. Start with v=spf1, then include mechanisms such as ip4, ip6, and include for services. End with -all or ~all depending on your tolerance for bounces. Example structure:
- v=spf1 ip4:203.0.113.10/24 include:spf.exampleservice.com -all
Practical steps you can follow:
- Test incremental updates in a staging DNS zone before publishing live.
- Limit the number of include mechanisms to avoid SPF lookup limits.
- Prefer -all for strict enforcement once you validate all senders.
Expert note: monitor SPF alignment across inbox providers; a mismatch can still cause delivery issues even with a valid record. Consider pairing SPF with DKIM and DMARC for stronger protection.
2. Add the SPF record to your DNS
Where to place the SPF record (DNS zone)
Locate the DNS zone for your domain. This is typically managed with your domain registrar or hosting provider. You need access to the DNS management area where TXT records are stored.
SPF records live as TXT records at the root domain. In most setups you will place a single TXT record for example.com with the SPF data.
Step-by-step: creating or updating the SPF TXT record
- Open your DNS management console and choose your domain.
- Add or edit a TXT record at the root domain (no subdomain).
- Enter the value starting with v=spf1 and include all sending sources you identified.
- Choose an appropriate qualifier at the end such as -all or ~all based on your tolerance for failed sends.
- Save changes and note the TTL value to manage propagation timing.
Common pitfalls and how to avoid them
- Multiple SPF records cause failures. Ensure there is only one TXT record with SPF data for the domain.
- Too long DNS records can exceed limits. If needed, consolidate sources using include statements.
- Propagation delays may extend up to several minutes to hours. Plan changes accordingly and verify after some time.
3. Generate DKIM keys in FluentSMTP
Accessing FluentSMTP DKIM tools
Open FluentSMTP and navigate to the DKIM area. You’ll find panels for key creation, selector management, and domain alignment. Use a sandbox environment with sample domains like mail.example.com to validate DNS records.
Choosing a selector and domain alignment
Choose a rotating selector such as default or sel2026, and verify how it maps to your sending domain. For instance, a selector default on mail.example.com yields a DNS TXT record at default._domainkey.mail.example.com. Maintain a brief changelog to track selectors used with campaigns.
Generating public/private key pair
Click generate to create a 2048-bit private key stored in FluentSMTP and a corresponding public key published as a TXT DNS record. After generation, copy the public key string and publish it in DNS as a TXT entry under default._domainkey.mail.example.com. Verify by querying the record from a staging DNS resolver.
| Consideration | Guidance |
|---|---|
| Selector | Use a simple, rotating name. Examples: default, sel2026 |
| Domain alignment | Ensure the selector aligns with the sending domain in DNS |
| Key size | Follow recommended defaults for compatibility with major providers |

4. Publish the DKIM public key in DNS
Understanding DKIM DNS record format
The DKIM public key is published as a TXT DNS record under a subdomain that reflects your selector. The typical format starts with v=DKIM1, followed by k=rsa and p=public_key. The exact domain name combines the selector and domain, such as selector._domainkey.example.com. This record lets receiving servers verify signatures by matching the public key against the DKIM header.
Creating the DKIM TXT record with your selector
- Choose a selector you can rotate in the future, such as default or sel2026.
- Construct the DNS name as selector._domainkey.yourdomain.com.
- Set the TXT value to include the DKIM parameters, for example: v=DKIM1; k=rsa; p=public_key.
- Publish the record in the same DNS zone as your domain.
- Optionally, publish a separate test record for a throwaway domain to confirm formatting before going live.
Verifying DNS propagation status
- Use a DNS lookup tool to confirm the TXT record is visible for selector._domainkey.yourdomain.com.
- Check that the retrieved value begins with v=DKIM1.
- Allow time for replication and recheck after changes to ensure consistency across providers.
- If you use multiple DNS providers, verify each zone syncs within the same 5 to 15 minute window.
5. Configure FluentSMTP to sign with DKIM
Connecting FluentSMTP to your domain’s DKIM keys
Link FluentSMTP to the DKIM keys you generated. This ensures outbound messages carry a verifiable signature. Start by selecting the DKIM or signing section within FluentSMTP and choose the domain you prepared.
Enter the private key material securely stored in FluentSMTP and confirm alignment with your DNS configuration. The plugin will use this private key to generate the DKIM signature during email creation.
Setting the DKIM selector and signing options
Choose a selector that suits your rotation plan. Typical choices are default or a date-based tag. Configure the selector in FluentSMTP so the signing process references the correct DNS record. Adjust signing options to include headers you want signed, and verify the canonicalization method aligns with your mail provider expectations.
Set the signing to enable by default for all outbound messages from the configured domain. Review any provider-specific requirements and ensure the v=DKIM1, k=rsa, p=public_key format remains consistent with your DNS entry.
Testing DKIM signing on outbound messages
Send test emails to a mailbox that displays header details. Look for a DKIM-Signature header indicating a successful signature and a validated domain.
If signatures appear but fail verification, recheck the private key pairing and the selector name. Ensure the corresponding DNS TXT record exists and is reachable publicly. Re-test after propagation.
Practical steps to speed up rollout
- Schedule a one-time audit of your DNS TXT records for all domains you sign. Confirm records are published with the exact selector and public key material used by FluentSMTP.
- Use a staging domain first. Send 20 to 30 test messages across different providers to verify cross-provider compatibility.
- Implement a monitoring alert. If DKIM verification drops below 99%, trigger an alert to review DNS or key rotation immediately.
6. Verify SPF and DKIM configurations
Checking SPF alignment and test emails
Confirm that the SPF record lists all approved sending sources and that the path used by FluentSMTP aligns with your domain. Send test emails to a recipient mailbox and review the header to verify SPF pass status. If SPF fails, double check the TXT record syntax and the included IPs or A records.
- Look for a pass result in the SPF section of the received email header.
- Ensure the envelope from domain matches the header from domain for alignment.
Real world scenario: you send a campaign from FluentSMTP on a dedicated subdomain like mail.brand.com. If a recipient sees SPF softfail, add the sending IPs for that subdomain to the root SPF record or simplify by using a single source to improve alignment.
- Test with both webmail and desktop clients to catch variations in header rendering.
- Use a dedicated testing mailbox to avoid interference from other campaigns.
Verifying DKIM signatures on sent mail
Check outbound messages for a DKIM-Signature header and confirm the signature corresponds to your chosen selector and domain. A successful verify shows the signature validated by the recipient’s mail system. If signatures do not appear, recheck the private key binding and selector configuration in FluentSMTP.
- Validate that the d= domain in the DKIM header matches your sending domain.
- Ensure the signing headers set in FluentSMTP are included in the signature.
Rotate DKIM keys every 12 to 24 months and publish a parallel key during rotation to avoid outages. Monitor bounce reports for DKIM related failures after changes.
- Keep a short list of signing headers like From, To, Subject, and MIME-Version to minimize header size and improve deliverability.
Using validation tools and common troubleshooting steps
Use built in or third party validation tools to test both SPF and DKIM separately. Common fixes include correcting DNS TXT record formatting, waiting for DNS propagation, and ensuring the DKIM public key matches the private key used by FluentSMTP.
- Check that TXT records use quotes around values and include v=spf1 or v=DKIM1 prefixes as required.
- After updates, revalidate with multiple mail providers to confirm consistency across platforms.
| Area | What to check | Typical fix |
|---|---|---|
| SPF | TXT record syntax, included sending sources | Update SPF to include all sources and use v=spf1 with proper qualifiers |
| DKIM | Selector alignment, public key in DNS | Publish correct TXT record for selector._domainkey, align selector with FluentSMTP |
7. Optional: Combine with DMARC for enhanced protection
Understanding DMARC fit with SPF and DKIM
DMARC adds a reporting layer and a policy that tells receivers how to handle unauthenticated mail. It relies on SPF and DKIM alignment checks to determine pass or fail for your domain. This helps unify treatment when you use multiple sending sources.
With SPF and DKIM in place, DMARC provides visibility into authentication results and guides receivers on actions when messages fail. This is especially useful for high‑volume campaigns involving partners and different domains.
Creating a DMARC policy and reporting
Start with a nondestructive policy to monitor, then move to enforcement as you gain visibility. A DMARC record lives in your DNS as a TXT entry and includes:
- p=none, quarantine, or reject policy
- rua=mailto:addresses for aggregate reports
- ruf=mailto:addresses for forensic reports (optional)
- fo=1 for failure reporting options
Aggregate reports give a snapshot of authentication results across receivers, helping you spot misconfigurations quickly. You might discover a partner domain signing on behalf of your brand that lacks DKIM alignment, prompting a DKIM key rotation.
Guidelines for gradual DMARC enforcement
Adopt a staged approach to minimize disruption:
- Begin with p=none to collect data for 2 to 4 weeks, then review rua data for outliers.
- Identify legitimate sources not yet covered and update SPF allowances or add DKIM signing for them.
- Move to p=quarantine, then p=reject only after metrics show steady passes and no legitimate sources are blocked.
Ensure all legitimate sending sources are covered in SPF and that DKIM signing remains consistent before tightening policy. Coordinate with partner senders and monitor post‑policy changes for any false positives.
FAQ
How is DKIM different from SPF and DMARC. SPF checks which servers can send on your domain, DKIM verifies content integrity with a cryptographic signature, and DMARC ties the two together with a policy for receivers. For example, a large retailer might use DKIM to protect transactional emails, while SPF governs which outgoing mail servers are allowed. Pair these with a DMARC policy to instruct receivers on handling failures.
- What is a DKIM selector. It is a label used to locate the public key in DNS, typically included as selector._domainkey in the TXT record.
- Where should the DKIM TXT record live. In your domain’s DNS zone, under a name formed from the selector and domain, such as selector._domainkey.example.com.
- What does v=DKIM1 mean. It specifies the DKIM protocol version in use.
How do I verify DKIM after setup. Send a test message and inspect the header for a DKIM-Signature block that shows the signing domain, selector, and a pass result from the recipient’s mail system. Use tools like online DKIM validators or your ESP’s reporting to confirm alignment across headers and body.
- Why propagate time matters. DNS changes spread gradually; allow up to 48 hours in some cases, and re-check once propagation stabilizes.
- What if DKIM signatures fail. Reconfirm the private key bound to FluentSMTP, ensure the selector matches the DNS record, and verify that the public key in DNS is accessible publicly.
Are DMARC policies required. They are optional but recommended for visibility and protection, especially when SPF and DKIM are in place. Start with a monitor-only policy and move toward stricter enforcement as you gain confidence. For an integrated approach, monitor reports from major providers like Gmail and Microsoft 365, then gradually publish p=reject or p=quarantine once you see consistent alignment.
Conclusion
Configuring SPF and DKIM correctly strengthens email authentication and improves deliverability for messages sent through FluentSMTP. Start by ensuring DNS records reflect all approved sending sources, then enable outbound signing to prove origin and integrity.
Practical steps you can take today
Audit every sending channel you rely on, including marketing platforms, CRM systems, and transactional email apps. Add each source to your SPF record with appropriate includes or IPs, and keep the total DNS SPF lookups under 10.
Publish a DKIM TXT record that matches the selector you configured in FluentSMTP. Use a 1024 or 2048 bit key and rotate keys every 6 to 12 months to limit exposure.
Run a test send after updating records. Use tools like MXToolbox or Google’s CheckMX to verify SPF alignment, DKIM signing, and that domain alignment issues are resolved.
- Verify SPF covers every server and service you use for sending email.
- Publish a DKIM TXT record that matches the selector configured in FluentSMTP.
- Test both SPF and DKIM after changes and monitor results before expanding scope or tightening policies.
Optional enhancements can include adding a DMARC policy to gain visibility and progressively enforce authentication. Start with monitoring, then move toward quarantine or reject as confidence grows.
For real world checks, monitor delivery by sending to multiple providers (Gmail, Outlook, Yahoo) and review headers to confirm SPF pass and DKIM signatures are valid. If you see failures, verify DNS propagation times and ensure the public key matches the private key used by FluentSMTP.
