It shouldn't
The receiving server will check for a single TXT
record that starts with "v=SPF1"
. The number of TXT records at the domain level does not matter.
However, when the results of a DNS query are above a certain size, the DNS service will send back the first set of bytes and flag the response as truncated
. This will prompt the client to retry the query over TCP instead of UDP.
Since the SPF lookup for a domain is for any TXT
records at the root of the domain, all TXT
records are returned. So, when you publish many TXT records at the same domain as your SPF record, the chance increases you're exceeding the UDP limit.
This should not be an issue, per se. But, I've seen some TempErrors occur with some mailbox service providers where those do not attempt a second lookup over TCP. This can cause issues, for example when you have a restrictive DMARC policy set (p=reject
or p=quarantine
) and DKIM fails or isn't present. DMARC evaluation then relies on SPF results (and alignment) and an Error will fail it.
This answer explains the DNS behaviour better than I could: https://superuser.com/questions/1411657/why-dns-look-up-is-udp
Another way
Some services allow you to use a different (sub)domain for SPF checks than the domain used in the FROM
header of the email. Since SPF is checked on the Return-Path
address, where bounces are sent, you can use a different domain for your SPF record than where you publish the TXT
verification records. This will also help towards staying away from the 10-lookup limit for SPF queries. Although not all service providers support such a setup, it will help reduce the size of the top level record when they do.