Support
 
 
 
Share/Save/Bookmark

Emailology: Two Ways to Ensure that Your Entire Email Is Rendered by Default in the iPhone & iPad

Posted December 23, 2011 by Michelle Klann
May 1, 2012 Update:
Through additional testing, we have confirmed that the issue is related to the user's decision to either use the IMAP or the POP protocol.

For users who chose IMAP, an email will be fully rendered when the user opens the message. For those who chose POP, the content will be truncated and the user will be asked to download the full message.

By applying the following fix, you can ensure your email will render properly regardless of the user's configuration.

While using the native email clients for the iPhone and iPad, we noticed that in approximately 10-15% of our test emails, the reader only displayed a small segment of the original email. When this happens, it renders the loaded portion of the email with a button at the bottom which reads: "Download remaining XX bytes." Often times the button appears below the fold, especially in landscape view, making it easy to miss.

Most of the time, when the button is touched the remainder of the email is rendered. In other instances, we've seen it load a second portion of the email with no option for downloading the remainder. When the device is flipped from portrait to landscape the entire message shows, when it is flipped back the entire message remains - which leads us to believe that this is an iOS glitch.

Let's start with some examples:

Before (scroll to see button):


After tapping the button:


In this particular example, the only thing that is loaded from the beginning is the header image and the button appears well below the fold. Also, the email doesn't fully download after tapping the button. If you flip the phone to landscape view, it looks ok. If you flip it back, everything still looks ok.

Here it is when flipped:

 

Another thing to point out is that most of the original email was not loaded from the beginning. Therefore there's no content being displayed just under the subject line in the inbox:

This might cause people to avoid opening the email in the first place. Yikes!

If you'd like to see this in action on the iPad as well, here's the original HTML version.

So what's the fix?

  1. Make sure that you have a minimum of 1,019 characters before your closing head tag (</head>) including spaces and carriage returns.

    If you don't have any need for more styles nor a style block, try inserting several lines of empty spaces.

    Strange right? This fixed the problem in each of the emails we tested. Oddly enough, I think 1,024 characters totals a single KB - so this might actually be caused by some type of iOS buffering issue.
  2. Another option is to remove your <head></head> tags entirely. Be careful with this solution, some email service providers might place head tags within your email dynamically.
  3. If your email is below 10k, you can try removing all carriage returns and double spaces. We've seen instances where the download button no longer showed up if the email was at or below 7k. This option would be my last resort.

Here are some of the notes we took while testing just in case the above suggestions do not work for you:

  1. The issue occurs with the exact same emails on the iPhone and iPad which leads us to the conclusion that it's an iOS thing, we tested in iOS4 and iOS5.
  2. It's not sender specific - this eliminates issues with sender reputation.
  3. It's not column specific.
  4. It doesn't seem to have anything to do with nested tables.
  5. Some tests that are over 25K render just fine yet others that are less than 10K cause the issue.
  6. The amount that is left to download is not consistent in each of the emails that triggered the issue.
  7. There's no clear reason why it gets cut off and from where within the email.
  8. Doesn't seem to be due to meta tags, DOCTYPE, nor media queries. Note: When tinkering with these variables, you might create/resolve the issue because you are switching up the total number of characters before the closing head tag.
  9. It has nothing to do with the internet service (ie: being temporarily interrupted).
  10. There doesn't appear to be any caching - if an email is opened, then downloaded, the same issue will happen if the exact same email is sent again.
  11. The date/time settings on each of my devices are correct.
  12. I have seen people say that it happens when receiving mail on an Exchange account, I am using a POP3 account and I'm still seeing the issue.
  13. It doesn't seem to be effected by images, I was able to recreate the issue with all images removed.
  14. It is not caused by html entities (&nbsp).
  15. I tried replacing all the content with Latin and that still didn't fix it - that rules out content.
  16. It's not caused by empty table cells.
  17. It's not a special character - I tried cutting/pasting into Notepad and then I resent the email.

In Conclusion

These days, it's hard enough to get your email to render correctly in each email client, yet alone having to worry about your message getting chopped off in two of the most popular mobile devices. If this happens to you and you find a different work-around, please don't hesitate to share your comments below! Or, if you are an iPhone/iPad user and you figure out a way to disable the download button, please share and we can update this blog post for others who are having the same issue.

Cheers and happy testing everyone!

Comments

Jeffrey Merrell
Jeffrey Merrell
Your solution of "Make sure that you have a minimum of 1,019 characters before your closing head tag (</head>) including spaces and carriage returns." prompted me to look at the html code of one of my messages.

For me there was no content between the head tags except for: <head>
<meta content="text/html;charset=UTF-8" http-equiv="content-type" />
<title></title>
</head>

So that leads me to the question, where do we put the 1091 characters?
Posted 01/17/2012

Avatar
John Thies
Greetings Jeffery, you would add the spaces in-between the </title> and the </head>. So for example your header would look like:

<meta content="text/html;charset=UTF-8" http-equiv="content-type" />
<title></title>

</head>

Please let us know if you have any other questions.
Posted 01/17/2012

erattt
erattt
u would add the spaces in-between the title
Posted 02/13/2012

Colleen
Colleen
Hi There!

I tried adding spaces, and/or span tags between the </title> and </head> tag, but the system automatically deletes them, I'm assuming to clean up the code. Do you know how I might get around this?
Posted 02/28/2012

yatrik
yatrik
Regadint the message "This message has no content", your tip to add 1091 characters within <head></head> works. But I think the reason is the email client is not able to find any non-html text within certain characters or something as I am not seeing that message if I place some text like "View in Browser" before my header image! I can see the same text "View in Browser" instead no content.
Posted 03/01/2012

Avatar
Michelle Klann
Colleen,

I am not sure what system you are using but you could certainly make up some embedded CSS to use as characters, just don't reference it anywhere within your email.

For example:
<style>
.fake_css {border-top:1px solid #000000}
</style>
(I would then add lots of CSS declarations to that class in order to get your total number of characters up to 1091)

Maybe your system won't delete it if it seems valuable.
Posted 03/02/2012

Alessandra
Alessandra
Worked for me! I found the emails were loading fully if I was on WiFi, but if I turned WiFi off, I encountered the issue. However, this fixed it.

To save the rest of you some time, here's a section of dummy CSS we added to our existing <style> tag.

.fake_css {
width:100%;
display: block;
-webkit-text-size-adjust:none;
margin: 1em 0;
color: black;
text-decoration: none;
border-bottom: none;
background: none;
padding-bottom:0px;
padding-left:0px;
padding-right:0px;
background:none;
border-bottom:thin;
border-bottom-style:double;
background-repeat:repeat;
border-left-color:#C06;
background-attachment:scroll;
border:thin;
page-break-before:auto;
page-break-before:avoid;
page-break-inside:inherit;
azimuth:center-left;
vertical-align:inherit;
font-stretch:extra-condensed;
font-size-adjust:none;
list-style-image: none;
counter-reset:none;
letter-spacing:normal;
empty-cells:inherit;
elevation:higher;
}
Posted 04/27/2012

WebsiteChecker
WebsiteChecker
In recent days, I am trying to understand it, and searched a lot from the internet.but I still can not find a reasonable one. This article gives a good description about it,and help me understand the issue which confused me a lot.Thanks for your sharing!
Posted 05/29/2012

sfaf
sfaf
Thanks for this article. Unfortunately, my ESP doesn't allow me to edit what's inside the head.

your second tip has a typo - it says "Another option is to remove your tags entirely. " I assume you meant that to say remove your HEAD tags?

Unfortunately, also not an option for me. Will you be enhancing the EoA tool to render what the email looks like after the user hits 'download' ? Cause otherwise, I'm kind of dead in the water with testing for iphone, which is certainly pretty important.

thanks!
Posted 06/13/2012

pkonotop
pkonotop
There are two issues facing email downloads on iOS, one being it uses dual-threading for the head and body which is why increasing size of head downloads more of the email. The other issue facing is if your email is quite large more than 50/60kb (inc images) the download is going to depend on your connection type and speed.

Link below explains in more detail.

http://stackoverflow.com/questions/9323148/html-email-doesnt-display-in-iphone-mail-until-download-full-message-selected
Posted 06/14/2012

Laurie Chu
Laurie Chu
When I add fake <style> after </title></head> code analysis summary shows a critical error as follows:

Gmail
1 Critical 2 Moderate 2 Minor
STYLE - STYLE declaration not supported in HEAD tag.

Is this okay or will it cause gmail to end up in the spam folders of recipients?
Posted 08/08/2012

Louise
Louise
Yay, yay and yay! Thanks so much for solving this problem!!
Posted 08/12/2012

etouchservices
etouchservices
Would luv to see a preview in the test when recipient clicks on 'download'...but thanks for all the info just the same!
Posted 09/13/2012

GoodWeave
GoodWeave
Alessandra, your code worked perfectly! Thank you! Laurie Chu, you need to put the code in before you close the head tag.
Posted 09/19/2012

DebstJ
DebstJ
randomly reading this and so saying hi Laurie Chu!
Posted 10/08/2012

Denver
Denver
Is this workaround still required in iOS 6?
Posted 12/14/2012

Geoff Phillips
Geoff Phillips
Yes, this fix is still required when working with iOS6.
Posted 12/17/2012

fmadruga
fmadruga
I assume that a comment tag with some blah blah inside would work too, no?
Posted 02/22/2013

Scott
Scott
Well, this workaround WAS working for us. It looks like ever since the 6.0.3 update, it's not working any more. Anyone else having this problem?
Posted 04/02/2013

Keiron
Keiron
I tried your suggestion and this does not work. If I add additional "fake" CSS the opposite occurs where the download button remains but with an increased number of KB to download. Is the solution presented here in this article no longer relevant to iPhone 5/iOS6.1.4?
Posted 05/07/2013

Avatar
Geoff Phillips
@Scott and Keiron,
I checked into this and the fix is still working. I used the responsive template we offer for free to check this. We use spaces instead of "dummy css" and that's the approach I'd recommend. If you'd like to send me some code that isn't working properly, I'd be happy to take a look at it. Just send it attached as a text file to geoff [at] emailonacid.com.
Posted 05/07/2013

Keiron
Keiron
YES. Spaces do work! Thank you so much Geoff. Fake CSS does not.
Posted 05/07/2013

ListsUK
ListsUK
@Geoff
Thanks for this, big help.
If we add spaces before the closing header tag, they seem to be removed again once we save it - is that just us?
Cheers
Posted 05/08/2013

Avatar
Geoff Phillips
@ListsUK,
What program are you saving your email in? The spaces shouldn't be removed.
Posted 05/08/2013

ListsUK
ListsUK
@Geoff
Seems the blanks spaces stay in, unless we paste them into a TinyMCE editor, when it either takes them out or jumps them into the body text rather than between the header tags - weird!
I'll give it a go with the sample code @Alessandra mentions above.
Thanks.
Posted 05/09/2013

Share Your Comment

Name:
Email:
Location:
URL:

Comment:

Remember my personal information
Notify me of follow-up comments?

Please enter the word you see in the image below: