Updated 21 May 2020.
Sometimes, we setup Mailgun for transactional email, because this helps web based forms, and other, email to get sent to the right place. Its also free, as in beer, at least for the first 10,000 mails a months.
But we ran into a deliverability issue on one or two domains, which would sometime say things like:
550 Sender has no A, AAAA, or MX DNS records.
How to fix that? We thought. Well, the clue is in the message!
At the recipient, sometimes (though there is no actual standard or rule which says this should be done!), there is a DNS check to see if the sending domain is at the same URL as the domain from which the mail originated. Correctly formed SPF records should be respected and allow this, but there it is, some “spam filters” make this check.
But at Mailgun, we setup a special `mg.somedomain.com` subdomain to send transactional email from, right?
Yes, and that is where this “issue” stems from.
The fix?
Make a domain a record in your DNS which points to the same IP as the address from which your mailgun mail will originate from (often this will be where your “www” record will point), and, when this is updated and has propagated (yawn, we know, it takes a long time… can’t be helped) your mail will start sending correctly!
The record should be for the exact domain as your sending domain you setup in Mailgun – for example, if you’re sending from mg.somedomain.com and your server IP is 111.111.111.111 the record would look like:
A mg 111.111.111.111
If you use CloudFlare or another DNS proxy, it’s a little simpler if you turn off their DNS proxy feature, as this will reveal the “same” IP address as that from which your transactional mail will originate, which is partially what the spam filter you tripped up is checking for (whether or not this is a “correct” sending IP for THIS domain).
Hi, I’m running into the same error message that you were and I’ve tried fixing it but I’m not sure whether I’ve created the correct a-record. I added a mg.mydomain.co record with a value of the IP Address that is shown on my MailGun dashboard under Domians>mg.mydomain.co>Domain Information>IP Address. Is this correct or should it be the I.P Address of my main site?
Thanks in advance 🙂
Hi Matt,
The A record should be setup at mg.mydomain.co to point to where your server is – the mail origin server. This is the IP where your website is hosted.
So where your WWW a record points – to that IP. Or, if you have an @ a record, to that IP.
Robin
Very helpful article, thanks Robin!
I actually did everything in this article, including setting A record for mg.mydomain.com in DNS records, but I am still getting the “550 Sender has no A, AAAA, or MX DNS records” error? To configure MailGun with GoDaddy, I have added/verified TXT records for my domain and added subdomain A record to DNS per this article (no MailGun MX records added to avoid existing MX record conflicts).. but I still can’t get GoDaddy emails to send after 48hours. Only Google emails send properly. Not sure what to do next?