# Free SPF Record Merger & Lookup Flattener

> Free online SPF record merger and lookup flattener. Combine Google Workspace, Microsoft 365, and SadaSend strictly under the RFC 7208 10-lookup limit.

RFC 7208 §3.2 strictly states that a domain MUST NOT publish more than one SPF TXT record. If you publish two records, receiving mail servers (Gmail, Outlook, Yahoo) throw a fatal PermError and drop legitimate mail. Use this tool to merge existing mail providers into a single, valid SPF record and verify you stay strictly under the 10-lookup ceiling.

## Checks Performed
- Validates syntax according to RFC 7208
- Merges existing providers into exactly one TXT record
- Calculates total DNS lookups against the 10-lookup limit
- Prevents fatal PermError caused by multiple SPF records

## Sample Verification (example.com)
Merged successfully into a single RFC-compliant TXT record with 5 DNS lookups, leaving headroom under the 10-lookup ceiling.

| Check | Verdict | Details |
| --- | --- | --- |
| Merged SPF TXT value | PASS | v=spf1 include:_spf.google.com include:spf.sadasend.com ~all |
| Record count | PASS | 1 unified TXT record |
| DNS lookup count | PASS | 5 of 10 maximum (RFC 7208 §4.6.4) |
| Detected mail providers | PASS | Google Workspace, SadaSend |
| All mechanism qualifier | PASS | ~all (SoftFail) |

## Frequently Asked Questions
### Why can I not publish two SPF TXT records on my domain?

RFC 7208 §3.2 explicitly dictates that a domain MUST NOT have more than one SPF TXT record. When receiving servers (like Gmail or Microsoft 365) detect two or more SPF records for the same domain, evaluation halts with a fatal PermError. This causes legitimate emails from both providers to fail authentication and land in Spam or bounce entirely.

### How does the SPF 10-DNS-lookup limit work?

Under RFC 7208 §4.6.4, an SPF evaluator aborts evaluation if resolving the record requires more than 10 DNS queries. Mechanisms that count against the limit include: include, a, mx, ptr, exists, and redirect. Nested includes count towards your total (for example, Google Workspace includes 3 sub-records, consuming 4 lookups total).

### What should I do if my SPF record exceeds 10 lookups?

If your record exceeds 10 lookups, you must flatten it. Replace nested include mechanisms with direct ip4 or ip6 blocks, or remove legacy and unused third-party services from your SPF string.

### Should I use ~all (SoftFail) or -all (HardFail)?

We recommend starting with ~all (SoftFail) while integrating a new sender to ensure uninterrupted delivery. Once your SPF record has been verified across all active outbound systems and your DMARC policy is established, you can safely transition to -all (HardFail).
