A few weeks ago I needed to renew an insurance policy online. Inevitably, I'd forgotten the password so I clicked the reset password link and tabbed over to my inbox to pick up the email. Nothing there. Click to refresh a few times. Still nothing. Read some other emails that catch my attention and head back to inbox. Zilch. Head back to website and click password link a few more times for good measure. Check spam folder. Lots of Viagra offers but no insurance password reset. Give up and go outside to enjoy the sunshine.
Check my phone later that evening, and see that the password reset finally turned up. In this case I didn't end up going to a competitor or abandoning the purchase altogether, but one can imagine that delay in sending email reminders could easily translate into website or shopping cart abandonment.
I'd mostly forgotten about this incident and wouldn't have bothered writing about it, except that a similar thing happened again today, this time with an application that I was installing on my laptop. The user set up process required me to click on an activation link - pretty standard stuff. Once again, heading to my inbox showed nothing for a good hour or so.
If you're going to make email an integral part of interactive user process, then it must be immediate. Although you can't guarantee the entire end-to-end delivery, in this day and age there's no excuse for any holdups to occur on your end. Tools like SendGrid, Postmark, or Amazon SES make transactional email a breeze. Measure performance of email delivery just as you'd measure performance for the rest of your application. You wouldn't expect a user to wait 30 minutes for a page load; don't make them wait for email either.