Can you expand on why you feel double entry is a bad solution? I agree having to re-enter data isn't preferable, but it seems that a solution like this isn't perfect either; the user can still enter their address incorrectly quite easily without it being caught. It seems like double entry would catch more mistakes than this (not to dismiss this in any way as I really like it).
I agree that this is not a perfect solution - mistakes are still very possible and in some cases double entry may be the best option. That being said, this is still a good way to catch some of the most common typo cases!
* Every field you add to a form reduces the number of people who complete it -- as it gets longer, more people will go "ugh, big form, not worth it" and click away the moment they see it.
* Autocomplete usually provides my email address for me, so asking twice is pointless; when it doesn't, I usually copy-and-paste from one email box to the other, and I'm not alone in doing so (see elsewhere in these comments).
* "These email addresses don't match" leaves the user to play hunt-the-typo hirself, while the submission's approach points hir straight at the (possible) error. I guess you could highlight the differences with the double-entry approach too, but suggesting plausible corrections remains easier for the user.
I was hoping that this did something a bit more worthy of Hacker News, like checking if the A Record exists. Or perhaps speaking SMTP to the domain in question to query if the user actually exists (works on some domains) using web sockets.
Strictly, you might need to check for both. If there are no MX records, mail will be delivered to the @ A record for a domain (e.g. mail to x@example.com will go to the IP for 'example.com').
So if there are no MX records, you need to check @'s A record as well (or vice versa, since not all domains have A records either).
Thanks for the excellent write up, Andrew. Glad to see that Mailcheck's working well for you! I'll post up your post on our Github readme in a bit.
As a side note, I'll be releasing version 1.1 shortly, which has a bunch of improvements, including the option to use keyboard-distance based string matching. Look out for it!
Why is this better than having users enter their email twice and just confirming they match?
I realize entering email twice might be slightly sub-optimal from a user perspective but if you as a user want a service, it seems like entering one's email twice is not a lot to ask or a major source of friction. Or is it?
Not trolling. Genuine question. We do the type your email address twice on our site so wanted to understand if there any clear benefits of this approach.
I see what you're saying about the customer wanting the service but a lot of time it's not so simple. We spend a ton of time tweaking our copy and graphics to convince the customer, if only just barely, that they should sign up. When they finally decide to sign up, the fewer the forms the better. There have been studies that show a marked reduction in performance for each new field you request from the customer. This has lead to people asking for a password only once, instead of the traditional twice, or to go further and not even ask for a password (it's automatically created and emailed to them).
Additionally, as developers, we should be making things easier for customers. Correcting obvious typos is a better system than asking all customers to type it twice. Consider the extra work you're creating for all the customers who didnt have a typo.
One of my accounts uses a relatively long domain, so I often type it once, Ctrl-A Ctrl-C to copy it, then paste into the dupe field. Assuming I'm not the only person that does this, entering it twice isn't going to help in any significant way.
And secondly, there's a fair UI improvement in 'your email might be wrong, and here are some easy 1-click suggestions to fix it' vs 'these 2 things don't match. Work out where the error is, and then fix it', usually without even indicating the non-matching substring(s).
The e-mail address is more important than other fields both because it can be used to verify identity and because it allows a website to send marketing e-mails (which is often the purpose of getting people to sign up.)
Then again, you can do a lot of mistakes when typing your shipping address and it will still get through. It is also easier to spot mistakes since a shipping address contain regular words which isn't as common with email addresses.
One char wrong and your email is completely worthless, and with it your only real link with the service is cut off - often with no way of fixing it.
Many people really struggle to type on a keyboard - it's something that geeks often forget (I've been reminded of this again this week when helping my mum setup her new laptop). For them, having to enter their email address twice isn't suboptimal - it's a nightmare.
Those of us who don't have a problem with keyboards don't bother typing twice. We Ctrl-A, Ctrl-C, Tab, Ctrl-V, which renders the whole thing pointless.
Sounds good. I wish there were a script like this that kept an updated list of throwaway email domains, and maybe did some cross-checking with other sites where the script were being run for multiple rapid signups without history, etc. Something that would assign a credit score to each email address so we'd know if we were dealing with a legitimate user who had some kind of internet / forum / social / whatever history. At the moment we often google their email addresses by hand to figure out who's real and who isn't.
It'd probably be quite a barrier to signup, although I guess a 'mailto:register@example.com?subject=signup-for-$uniqid' link might solve some of the hassle.
The major issue I can see with it is that many people might like to use a email alias to signup (I prefer to use shabble+servicename@ for services which aren't too broken to accept a +) which isn't the same as their configured sender.
29 comments
[ 5.2 ms ] story [ 81.5 ms ] thread* Every field you add to a form reduces the number of people who complete it -- as it gets longer, more people will go "ugh, big form, not worth it" and click away the moment they see it.
* Autocomplete usually provides my email address for me, so asking twice is pointless; when it doesn't, I usually copy-and-paste from one email box to the other, and I'm not alone in doing so (see elsewhere in these comments).
* "These email addresses don't match" leaves the user to play hunt-the-typo hirself, while the submission's approach points hir straight at the (possible) error. I guess you could highlight the differences with the double-entry approach too, but suggesting plausible corrections remains easier for the user.
http://www.webdigi.co.uk/blog/2009/how-to-check-if-an-email-...
Maybe I'll build it for fun.
So if there are no MX records, you need to check @'s A record as well (or vice versa, since not all domains have A records either).
Might be fun to do the same in JS.
As a side note, I'll be releasing version 1.1 shortly, which has a bunch of improvements, including the option to use keyboard-distance based string matching. Look out for it!
I realize entering email twice might be slightly sub-optimal from a user perspective but if you as a user want a service, it seems like entering one's email twice is not a lot to ask or a major source of friction. Or is it?
Not trolling. Genuine question. We do the type your email address twice on our site so wanted to understand if there any clear benefits of this approach.
I see what you're saying about the customer wanting the service but a lot of time it's not so simple. We spend a ton of time tweaking our copy and graphics to convince the customer, if only just barely, that they should sign up. When they finally decide to sign up, the fewer the forms the better. There have been studies that show a marked reduction in performance for each new field you request from the customer. This has lead to people asking for a password only once, instead of the traditional twice, or to go further and not even ask for a password (it's automatically created and emailed to them).
Additionally, as developers, we should be making things easier for customers. Correcting obvious typos is a better system than asking all customers to type it twice. Consider the extra work you're creating for all the customers who didnt have a typo.
And secondly, there's a fair UI improvement in 'your email might be wrong, and here are some easy 1-click suggestions to fix it' vs 'these 2 things don't match. Work out where the error is, and then fix it', usually without even indicating the non-matching substring(s).
billy@gmail.co
When people don't even know their email address from a URL or a Twitter handle they're bound to get it wrong exactly the same way.
Plus, confirming an email address is absurd. Why not confirm every other field on the form if you're such a stickler about accuracy?
One char wrong and your email is completely worthless, and with it your only real link with the service is cut off - often with no way of fixing it.
Those of us who don't have a problem with keyboards don't bother typing twice. We Ctrl-A, Ctrl-C, Tab, Ctrl-V, which renders the whole thing pointless.
The major issue I can see with it is that many people might like to use a email alias to signup (I prefer to use shabble+servicename@ for services which aren't too broken to accept a +) which isn't the same as their configured sender.
If they really want to service, they'll click the link.