Hi!
@Thomas: we don't want to erase the MX test, but extend it to make it smarter.
In our opinion the problems are e.g.:
1. antoniabur@uyahoo.com
SMTP error from remote mail server after RCPT TO:<antoniabur@uyahoo.com>:
host ancksunamun2.hosting [172.16.100.252]: 550 Cannot route to <antoniabur@uyahoo.com>
Question: Why?
Answer: uyahoo.com mail is handled by 10 10.0.0.2.
Conclusion: It is not in a routable network segment. This address should not be resolved form public network.
2. ralupop2003@yohoo.com
SMTP error from remote mail server after RCPT TO:<ralupop2003@yohoo.com>:
host ancksunamun2.hosting [172.16.100.252]: 550 Cannot route to <ralupop2003@yohoo.com>
Question: Why?
Answer: yohoo.com mail is handled by 0 .
Conclusion: it's a common mistake, They have registered it, but the MX record is empty or just a "."
Recommendations:
- extend the validator to check for not only the MX but also the following records:
MX,
A,
AAAA,
A6,
and maybe CNAME
- If the MX record returns with an empty (or invalid MX) value, e.g.: ".", the address should be marked as invalid
- It would be a good idea to extend the validator to OPTIONALLY detect and check for the following reserved network segments and mark as invalid:
10.0.0.0/8 # RFC 1918
127.0.0.0/8 # this host
169.254.0.0/16 # link-local
172.16.0.0/12 # RFC 1918
192.0.2.0/24 # example net
192.168.0.0/16 # RFC 1918
198.18.0.0/15 # benchmark net
224.0.0.0/3 # multicast & reserved
VERY IMPORTANT: it should NOT be a default behaviour, but give the chance to the developers to prepare their application to use it.
The MX check is only processed when dns_get_mx is available.
Within Windows for example no mx check is done.