Is this possible? Like a wildcard TXT record of some sort?
Yes, it is possible to define a wildcard TXT record. Notice that you should define both a TXT RR and a SPF RR.
In my home I run a local DNS server with the .fbh domain extension, I have created this record:
*.email IN TXT "v=spf1 mx -all exp=bad.example.com"
And this gives me the same response for all queries to *.email.fbh:
$ dig +short TXT test.email.fbh "v=spf1 mx -all exp=bad.example.com" $ dig +short TXT smth.email.fbh "v=spf1 mx -all exp=bad.example.com"
You can, however, include a central spf record in the invidual subdomain spf records.
Each individual spf records for the subdomains could look like this:
v=spf1 include:_spf.domain.tld ~all
And then add a TXT record for _spf.domain.tld with the actual spf values:
v=spf1 ip4:188.8.131.52/30 200.298.100.1/24 ~all
This way, you only need to maintain _spf.domain.tld, and not the records for the individual subdomains