
Community Contest: Emails Worth Forwarding
THIS CONTEST IS NOW CLOSED
After a quick break, we’re back at it with a new Community Contest! This time, we’re looking at forwarding emails.
Inspired by The Viral Email Report, we want to see what you can come up with to either a) make an email eminently forwardable (is that a word?) or b) take advantage of some of the quirks that happen when an email is forwarded (hint: a lot of things break).
We recently discovered that there are a number of things that can contribute to an email being forwarded. And, if you've been working in email long enough, you know that some funky things can happen when emails are forwarded. So, what can you do to take advantage of both?
Come up with an email design that people can't help but to forward and, if you're feeling extra adventurous, see if you can design something that degrades in graceful and creative ways when passed from one inbox to another.
Prizes
Once again, we’re partnering with our good friends at Code School to bring you some great prizes this month. The winning entry will receive the following:
- 2 free months of Code School
- 2 free months of Litmus Plus
- A care package full of Litmus and Code School goodies
About Code School
Founded in 2011, Code School is an online learning destination for existing and aspiring developers that teaches through entertaining content. With more than 40 courses covering JavaScript, HTML/CSS, Ruby, Git, and iOS, Code School pairs experienced instructors with engaging, high-quality content that’s been inspired by its community and network of partners. More than one million people around the world come to Code School to improve their development skills and learn by doing. For more information, visit www.codeschool.com
Requirements:
If you want your entry counted, make sure to follow these guidelines:
- Entry must be built for this contest. While you can use a concept you've sent before, don't just post the web link to something you shipped last month.
- You must be a member of the Litmus Community.
- Please fill out your Community profile so that we can get in touch easier.
- You must submit your design as a Builder embed in a comment on this discussion thread. Here’s how to do that.
- Please include a screenshot of your forwarded email to show us how it looks.
- All entries must be submitted on or before Monday, August 31st.
If you have any questions, please comment here. Be sure to get your entries in by August 31st if you want a chance to win the prizes!
Hello everyone,
I really enjoyed the previous contests, so I was really looking forward a new one. Ha. So here's my take on this contest. I made an email that evolves as you forward it between the desktop webmails of Gmail, Yahoo, Outlook.com and AOL. And it's also a game where you need to find the correct order in which to forward it so everything works correctly. I'm super hyped for the release of Super Mario Maker next month, so I've called this… Super Mail Forward !
Here's how it works. When you send it to the expected webmail in the right order (between Gmail, Yahoo, Outlook.com and AOL), a mushroom will appear.
If you send or forward it to a webmail in the wrong order, the block corresponding to this webmail will turn red.
I don't want to spoil the fun for people willing to play along and try this themselves, so I won't include more screenshots here. But you can see a full gallery there.
Now grab the code on Builder and try it for yourself with Putsmail.
Here's how I did this and some of the things I learned along the way. My biggest surprise was that webmails like Gmail, Yahoo, Outlook.com and AOL don't really mess up with your code when you forward an email more than when they display it in the first place. This means that since Yahoo filters attribute selectors in CSS, forwarding an email will forward it with attribute selectors filtered. But other than that, I didn't notice anything more removed when forwarding.
So to build this, I took advantage of what the email clients filter, support, and some of their quirks. I didn't want to bother with hardcore clients like Outlook 2013. So I chose a smoother path and quickly decided to work with Gmail, Yahoo, Outlook.com and AOL. Now because Gmail filters almost everything, I knew it had to be the last client you forward it to. And because AOL is very permissive and doesn't filter much, it was easier to set it as the first client you send it to. I then decided to play with the
background
property and change its value depending on the webmail. Each block is a 16x16 pixel grid, where each pixel (or<td>
) has a class that changes its background color. Here are the quirks I took advantage of to make this work :background
property is used in a<style>
tag. When this happens, all following CSS declarations are no longer applied by a browser. So the first step looks like this :All the magic here is done with the
background:url('http://i.imgur.com/6qtuIRR.gif');
property. AOL will correctly interpret the A-E rules (corresponding to the mushroom), but not the W-Z (corresponding to the default block). This means that AOL is the only client to see the mushroom at this point. And because the other styles transformed by AOL are not valid in CSS, they'll be filtered by any of the other webmail you forward it to.@media yahoo { }
, any other client or browser will simply ignore it. But Yahoo will transform it into@media { }
, thus triggering your styles inside.<style>
tags will be stripped. So in order to make this work on Gmail, I had to play with inline styles. Gmail supports bothbackground
properties with a color or an image. But Outlook.com will strip any declaration containing an image URL. So each cell of my pixel grid contains two background declarations : the first one with only a color matching the final state desired in Gmail. And the second one with a background color matching the default block style, but with a background image (a useless transparent spacer).<style>
tag, I use with to reset the.step4
pixel cells to their default block colors.Perhaps the most time consuming part of this contest was to optimize the pixel art grid so that the whole email stays below the 100 Kb limit. In one of my first versions, each block was a
<table>
weighing around 50 Kb. So I did the following optimizations to keep the email weight as light as possible (currently at 67 Kb) :lang
attributes instead ofaria-labelledby
for Gmail. That's eleven characters shaved off for each cell, so about 8 Kb for each block..mushroom-black
,.mushroom-white
,.mushroom-red
, etc. to.A
,.B
,.C
, … This saved about 6 Kb for each block.colspan
as I could in order to optimize the grid itself. Here's what it looks like in the final version.I hope you enjoy this email as much as I enjoyed building it. Let me know if you have any question.
WOW!!!!
This is awesome. Very clever use of email quirks.
Thanks Mark ! And kudos to you for finding the
@media yahoo
hack.Respect.... ! If I understand , you use webmail loopholes so that, during the transfer of the mail, the right code appears to each webmail ? When will the conference to explain it all !! ^^
Thanks Aurélie ! You got that right : I took advantage of each webmail's weakness so they can generate the code I need in the end. I'd love to give a talk about this kind of stuff ! (too bad I'll miss TEDC this year. Maybe next year ?)
This is incredibly clever and really well thought out! Amazing work, Remi.
Really nice! Good job!
This is très slick!