Earlier quoted context omitted.
In general terms I absolutely agree with you. However, the subtleties might have more to do with ensuring that the intent of the transaction is adhered to rather than not. The first assumption is that your intent is to capture accurate user information and the user's intent is to give it to you. With that established, it is a good idea to apply sensible measures at your end in order to ensure that the data is accurat…
Is "jotdot@somedomain.com." actually invalid? My understanding is that something like "example.com." represents the same domain name as "example.com" does. I don't know if things work differently for email addresses, though.
An absolute FQDN ends with a period:
apple.com.
A relative FQDN does not: apple.com
When a DNS resolver sees an absolute FQDN it has a pretty direct path to getting the corresponding IP address.If, instead, the resolver is looking at a relative FQDN it does not, and it tries to fix it, and it could go around in circles for a while depending on where the resolver is running. What the resolver does is add different forms of DNS suffixes it has available until it either figures it out, fails or times out. For example, if the resolver is running on www.example.com, it might try the following:
apple.com.www.example.com.
apple.com.example.com.
apple.com.com.
If it finds any CNAME records it will follow them and go around in circles some more. I ran across this recently while looking at the whole issue of email validation through DNS. So, this is fresh pain you are hearing about!Here's my post on SO:
http://stackoverflow.com/questions/14065946/what-would-cause...
I also have a DNS function test page on one of my sites here:
http://www.tommyteaches.com/test/test2.php
If you try a domain like "notarealdomain1.com" you'll see that it takes a while (20 to 30 seconds per test) for the DNS functions to resolve it. If, instead, you enter "notarealdomain2.com." (period at the end) the DNS resolver will come back almost immediately. This is due to the DNS suffix append mechanism described above.
Note that if you enter the same name twice, the second test will return faster due to caching.
Here's an interesting read: