For this kind of bulk lookup, dnspython is usually fine, but performance often depends more on resolver settings, timeout, retry behavior, and concurrency limits than on the library alone. socket.getaddrinfo will not help for MX/TXT, and calling dig in subprocesses is usually not worth the overhead unless you need exact system-tool behavior.
asyncio + aiodns can be faster for large batches, but it may add complexity and occasional resolver quirks. Before switching, you may want to tune your current dnspython resolver and test higher concurrency carefully. Your idea of verifying results with https://dnsrobot.net/spf-checker is also a good way to spot-check SPF, DKIM, and DMARC output. -- https://mail.python.org/mailman3//lists/python-list.python.org
