Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When it's more important to prevent typos than to cover 100% of all possible email addresses, what syntactic email validations do you do?

Imagine this:

You're with the local gas & electric company. 10% of new installations are cancelled because the customer is not home and it costs your company $50 a pop. You start taking email addresses with the new install orders so that you can send reminder emails the day before the appointment. You bring that number to 0% when you have a deliverable email. The only problem is that 15% of all the emails you take bounce back because of some typo. Email addresses are recorded by call center agents who talk to the customer over the phone.

In this case, it's important to collect a valid email address. It's also not all that bad if someone cannot successfully use an email address like:

"Big Momma D.'s #1 CA$H Maker, BOY!!!"

My guess is that Big Momma D. can't use this email anywhere and either doesn't really use email, or has more conventional email address to use.

This is related to this more general question: How far should I take e-mail address validation?

Let's throw a few more assumptions on here:

  1. This is in the US, so it's unlike people will have email addresses like 漢字 (good luck communicating that to a call center agent in Austin, Texas)
  2. Validation emails are not suitable, since the customer is only in contact with us by phone
share|improve this question
Side note: If the customers enjoy the email reminder, maybe they would also enjoy being able to setup their email online, with out needing to talk to a person? – Jeremy Heiler Aug 11 '11 at 20:32
Can you not call them before you roll out to their house? – whatsisname Aug 11 '11 at 20:33
We can and do call them before we roll out to the house. The email is just a double-whammy. – Mike M. Lin Aug 11 '11 at 20:50

You should simply test sending an email to the given address. If the email is valid, it should reach the user's inbox and the user can click on a link to validate the email and continue registration. If the user did not receive the registration email, then they would notice that they typed something wrong. This procedure is pretty much standard nowadays.

share|improve this answer
Validation emails are usually a good solution. However, here the customer is not on the web; she's on the phone. In a call center scenario, where "average handle time" is a big focus, most organizations would be unwilling to have their agent sit idly on the phone while the caller retrieves an email. And that's all assuming that the caller is near her computer. – Mike M. Lin Aug 11 '11 at 20:38
@Mike M. Lin: alternatively, you can reverse the role. Find an excuse to ask the customer to send an email to your company's address (which must be easy to recite over the phone); unless the customer forges their FROM field then you should be receiving a valid email address which you can contact the customer with. – Lie Ryan Aug 11 '11 at 20:50
Or send a link via email that the customer has to click in order to verify. If that does not happen within a timeframe then the call center calls the customer back. – sebastiangeiger Aug 13 '11 at 10:18

First of all, I'd run it through the most basic of regexs for validity. You can find several options, all with their own problems and features at: (There's an ugly one down the page that implements RFC 822)

However, what you have here is a business problem, not a computing problem. The solution is simple: "Your appointment for installation is XXXXXX. Should you miss this appointment without contacting us, you will be billed $50.00, and will have to reschedule."

share|improve this answer
Hah! Taking a hard line like that would be great. Unfortunately I don't really work for the electric & gas company, or any other monopolistic organization that could get away with that. My guess is that you'd be the first person to say, "Did you get my signature when we agreed to that over the phone?" – Mike M. Lin Aug 11 '11 at 20:48
Thanks for the link. This article is what got me thinking about this question in the first place. What I got from it is that in practice it doesn't make sense to allow the full set of crazy possible email addresses, because it's more likely someone mistyped an email address that doesn't match a much-simplified pattern. – Mike M. Lin Aug 11 '11 at 22:01

Nothing is 100%. One day the email server is up. The next it is down. Person used their cable company email and when they moved, no more email. How can you catch when it should be jan? Oh, the customer service person would catch this since she's speaking to a female and assumes it's jan instead. Only problem is this is the husband's email; he's the one who's going to be at the house.

You should consider a text message.

Or have phone call reminders go out the day before. And then the service tech calls when they are leaving for the call.

Trust me. I just moved and had every service and delivery you can think of: furniture, cable, alarm system, water softener. They all call ahead.

And that 15% failure is attributed to bad email address and not a failure to be home?

share|improve this answer
Yes, 15% all because of bad email addresses. In addition to that, 10% of people aren't home if you don't remind them by email. These are actually manufactured numbers for the sake of the question, but the real problem is very similar. – Mike M. Lin Aug 11 '11 at 21:57
+1 for the text message. That's what my dentist does... – Marjan Venema Aug 12 '11 at 6:21

One possible solution: Have them send you an email from their regular email address instead. Give them an email address that's as easy as possible to type. You can reserve a domain just for this. If your company is "MyCorp", you can register "". Tell them their appointment code is '243' and have them email '" (You can vary the domain, the appointment code can be a word, you get the idea.)

Then, when you get the email, you will have captured their email address with no chance of a typo. Just carefully select the email code on your side to make it as easy to type and spell as possible. You can even ask them to send them the email while you're on the phone, if possible.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.