Hacker News new | comments | show | ask | jobs | submit login
Reducing bad signup emails with mailcheck.js (andrewberls.com)
77 points by andrewberls 1901 days ago | hide | past | web | 28 comments | favorite

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.


Maybe I'll build it for fun.

I started on this once upon a time: http://emailpie.com/

Might be fun to do the same in JS.

The only way to check an address is to send it an email. Hotmial.com has valid DNS, for example.

Why use the A record, rather than MX?

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).

MX server record isn't required for all DNS listed email domains.

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.

That would reduce sign ups not increase them.

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).

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.



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?

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.)

My address is particularly important when a package is being shipped, but I can't recall ever being asked to type it in twice in a row.

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.

Email is arguably still more important. They want to be able to contact you if the package cannot be delivered.

Hey Derrick, glad you liked the post! v1.1 sounds awesome - I'll be sure to keep an eye out!

The source is at https://github.com/kicksend/mailcheck if you want to check it out.

Very cool! Far far better than getting people to enter their email address twice which is a terrible solution to a problem in my opinion.

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'd be surprised if many users type it twice. I always copy from the first to the second and wonder why the form designer has bothered.

Some reasons would be:

* 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 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!

Random thought: what if you gave users a unique code that they had to email back to the server to identify themselves.

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.

You'd have to be comfortable losing a LOT of otherwise perfectly good sign ups.

much better to do it the other way - allow your users to fill out their email address _once_, generate a confirmation link and mail it to them.

If they really want to service, they'll click the link.

This is awesome. Thanks!

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact