Email for Developers: A Survival Guide

Brent Sleeper
Jul. 18, 2016 by Brent Sleeper

Email for Developers: A Survival Guide

Making Email for Developers Easier

Back when I was a fresh-faced young web developer (just how much younger, I’ll leave to your imagination, though the fact that I was working with a Perl CGI script on a Netscape web server might give you some idea…), I was given the task of writing a script that would accept an email address from a web form and auto-reply an email with some bit of information (a thank-you note, if I recall correctly).

For obvious reasons, my script needed to parse the submitted data to make sure the user had entered a valid email address. Easy, I thought; the regular expression was going to be really straight-forward. I think I came up with something like “ \w+@[\w\.]+ ” After I had built out enough code to get a working demo, I showed the senior programmer on our team my work. He just shook his head, and promptly schooled me on how sloppy my assumptions were and showed me why my regex was many orders of magnitude insufficient. If you’ve ever tried to grep email addresses, you know how hard it is to write a regular expression that covers all of the bizarre edge cases.

Fast forward to today, and you can understand why I lol-ed reading the title of a blog post written by a developer a few years ago: “I Knew How to Validate an Email Address Until I Read the RFC.” The more things change…

The task of grepping a valid email address neatly captures the exasperation that nearly every developer who works with email has felt at some point. There’s really no getting around it: email can be a pretty strange beast with conventions, dependencies, and quirks unlike anything else, and many of us have a love/hate relationship with making it work. We love email because it’s ubiquitous, open, flexible, and effective; we hate—or perhaps have learned to treat it with a wary respect—because getting an email from point A to inbox B has so many variables outside our control. In short, it’s easy to feel like “I Knew How Email Worked Until I Started to Build an App that Sends Email.”

Fortunately, services like SparkPost let developers offload the operational considerations of building and hosting email infrastructure. We deal with the challenges of sending email at scale, the arcana of sender authentication, and the weeds of email deliverability so you don’t have to.

But even so, if you’re building email into your app or business process, email presents a number of messy details and idiosyncrasies that turn out to be gotchas for many developers. So, to save you a little bit of grief as you dig into the quirks of email, check out “The Developer’s Survival Guide to Email.” It’s an easy read that highlights 10 things builders new to email might not realize about implementing and sending email (and gives some great tips for solving them) – email for developers!

Let me know what you think. What are some of the things that surprised you about email as you began working with it? I’d love to hear about the challenges (and solutions!) you found.

—Brent
@brentsleeper

Related Content

A FreeMarker Converter in C#

One of our engineers walks through step by step how he created a FreeMarker conversion tool in C# to support SparkPost templates.

read more

Why We Hack

A look inside the internal hackathon trend, the cross-functional relationships that hackathons encourage and more reasons why we hack at SparkPost.

read more

High Touch Client Onboarding Using Process Street and Zapier

How to build a zap connecting SparkPost with Process Street to produce a high touch client onboarding experience for your sales outreach teams.

read more

Get started and start sending

Try SparkPost and see how easy it is to deliver your app’s email on time and to the inbox.

Try Free

Send this to a friend