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!!!"@naturalhistory.museum

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 漢字@gmail.com (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
  • 6
    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
    Aug 11, 2011 at 20:32
  • 3
    Can you not call them before you roll out to their house? Aug 11, 2011 at 20:33
  • 1
    We can and do call them before we roll out to the house. The email is just a double-whammy. Aug 11, 2011 at 20:50
  • This is a BS question. If you need to take an e-mail address by phone, you're doing it wrong. You have their address, so you can send a letter. If people call, you'll likely have their phone number, so you can schedule if/when to call them for a reminder. If people prefer to get a reminder via e-mail, they surely don't want to give the address over a phone.
    – D Drmmr
    Jan 29, 2019 at 20:41

6 Answers 6


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.

  • 3
    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. Aug 11, 2011 at 20:38
  • 9
    @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, 2011 at 20:50
  • 4
    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. Aug 13, 2011 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: http://www.regular-expressions.info/email.html. (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."

  • 2
    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?" Aug 11, 2011 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. Aug 11, 2011 at 22:01
  • 4
    Making sure an email address is valid or making sure it is the correct one is two highly different things. Don't invest anything in solving the wrong problem.
    – Bent
    Sep 23, 2016 at 8:34

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 [email protected] 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?

  • 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. Aug 11, 2011 at 21:57

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 "MyCorpEmail.com". Tell them their appointment code is '243' and have them email '[email protected]" (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.


You may send confirmation email as mentioned above. It's standard practice now, it even have special term for that process - two opt in. But in common you may validate user data BEFORE sending email. 1. You may check is there existing domain used. Is there MX records present on it? 2. You may integrate with some external service like mailcheck.co, that will check email delivering, but also enrich customer data with some additional info, like surname or social profile.

Those checks could improve yours bounce rate, and could be launched on existing email lists to validate them. But anyway - 2 opt in is necessary, those methods can't substitute it.

  • It's called "double opt-in", not "two opt-in".
    – Lie Ryan
    Jan 29, 2019 at 14:36

I've done something similar. I suggest you send them an appointment reminder email the day the day before the appointment (or some other timeframe), with the email coming from a dedicated email account. Have a job that scans that emails' inbox every 15 minutes or so, looking for the returned undeliverable message. Given your email setup, you should be able to compose the outgoing email with a recognizable ID or token, or if that's not possible, you could embed a GUID in the email body itself and check for that. When an undeliverable message comes back, the original message can usually be located and parsed. For emails that come back as undeliverable, locate the customer record in question if possible, then send an item into some kind of high priority queue for an extra human-based phone call to the person prior to the delivery.

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