GMail Chooses ONLY Non-HTML Mail If Given The Option

Posted August 2, 2006 at 3:00 PM by Ben Nadel

Tags: ColdFusion

Having to send out emails from web applications, I am often concerned with how email looks in non-html email viewers (less nowadays since everyone on their mom uses a good email client). To handle this issue, I send out my CFMails with both a formatted and non-formatted part:

  • <cfmail
  • to="xxx@gmail.com"
  • from="xxx@zzz.com"
  • subject="CFMail Part Text"
  • type="HTML">
  •  
  • <!--- Send HTML part. --->
  • <cfmailpart type="text/html">
  • My girlfriend is <strong><em>wicked</em></strong> hot!
  • </cfmailpart>
  •  
  • <!--- Send plain text part. --->
  • <cfmailpart type="text/plain"
  • >My girlfriend is wicket hot!
  • </cfmailpart>
  • </cfmail>

This sends out both types of email (HTML and plain text) in the same message and allows the user's mail client to decide which one is most appropriate. It seems that GMail always displays the "text/plain" version of the email. This is demonstrated by the fact that in my test emails, "wicked" is neither bold nor italic. Not only does it choose the "text/plain", it escapes any HTML tags in the plain part (not demonstrated above).

If, however, you send out an email with no options:

  • <cfmail
  • to="xxx@gmail.com"
  • from="xxx@zzz.com"
  • subject="CFMail Part Text - Inline HTML"
  • type="HTML">
  •  
  • <!--- HTML is inline. --->
  • My girlfriend is <strong><em>wicked</em></strong> hot!
  • </cfmail>

... It displays just as you would expect it to. So, clearly GMail can handle HTML formatting (as we all know). But, taking that one step to the side, if you send out an email with ONLY an HTML formatted section:

  • <cfmail
  • to="xxx@gmail.com"
  • from="xxx@zzz.com"
  • subject="CFMail Part Text - HTML Part Only"
  • type="HTML">
  •  
  • <!--- Send HTML part as only option. --->
  • <cfmailpart type="text/html">
  • My girlfriend is <strong><em>wicked</em></strong> hot!
  • </cfmailpart>
  • </cfmail>

... the email shows nothing at all!

So given the option, GMail will ONLY show plain text (or nothing at all). But, if not given an option, it will display formatted emails quite naturally.

I thought maybe this was due to some formatting preference that I had set, but I couldn't find one anywhere. This seems like a kind of strange thing to me. And, just to contract this to another mail client, Microsoft Outlook handles this perfectly.



Reader Comments

Tim
Aug 17, 2006 at 4:52 PM // reply »
1 Comments

I was just noticing the same thing, and came across your blog to see what can be done about it. Apparently nothing!


Aug 17, 2006 at 4:54 PM // reply »
74 Comments

Yeah, it seems like a weird glitch doesn't it? I will let you know if I find anything out about it.


Tim
Aug 24, 2006 at 1:15 PM // reply »
10 Comments

Found a solution... the order of the mime parts matters. If you put the text/plain part before the text/html, gmail will display the html part. Nice!


Oct 23, 2009 at 4:23 AM // reply »
1 Comments

Can You help me with how to code and send a html email newsletter to client examp if my client has abc@gmail.com


Dec 1, 2009 at 5:43 PM // reply »
1 Comments

@Tim, nice find. Works like a charm. Thank you.


Dec 23, 2009 at 3:58 PM // reply »
1 Comments

i just recently signed up with gmail and i am receiving emails in text format...how do i chnage my email setting to receive emails in html format???


Apr 7, 2010 at 3:08 PM // reply »
1 Comments

Great, Tim thanks for share your aknowledge!!


Apr 14, 2010 at 7:24 PM // reply »
1 Comments

Ok, I'm having the opposite issue... I'm trying to send a text-only email to gmail and nothing shows up. Suggestions?


Apr 15, 2010 at 9:24 PM // reply »
11,238 Comments

@DGLDY,

Try switching the order of the CFMailPart tags in the CFMail body. If you look at @Tim's comment above, GMail seems to take the order of the tag very seriously (but not sure why).


May 5, 2010 at 7:55 AM // reply »
1 Comments

It happens same in AOL too.

I send a newsletter in AOL having both the version in bodypart, and it displayed only the Plain-text version of the mail.
Even on viewing the mail sourcecode, it displays both the versions of email.

Now am sending only HTML version to both of them.


May 7, 2010 at 10:18 PM // reply »
11,238 Comments

@Chiranjib,

It's really frustrating that these mail clients have all of their own particular behavior.

@To All,

Campaign Monitor has a pretty mind-blowing tool that allows you to test mail blasts in like 20 different mail clients:

http://www.campaignmonitor.com/testing/

I am not sure if you can use it outside of a Campaign Monitor campaign; but I would recommend checking it out.


Jun 24, 2010 at 2:23 PM // reply »
1 Comments

@Ben
Thanks for this wonderful post. I was doing a research today for one of my clients and this answered some of my questions. They have a additional requirement where they wanted a button on the email message that would convert an HTML email to PLAIN TEXT. I do not know the exact reason why they want this. I think that it might be to see the plain text version in case the HTML version is scrambled.

Any suggestions??


Jun 29, 2010 at 10:06 AM // reply »
11,238 Comments

@Arvind,

I cannot think of any thing that would allow you do that. Sometimes, at the top of an HTML email, people will provide a, "Having trouble reading this? Click here." link that takes the user out of email to the actual target web site with an online version of the email.



Post A Comment

Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.

Please review the following issues:

Author Name:


Author Email:

Author Website:

Comment:

Supported HTML tags for formatting: <strong>bold</strong>   <em>italic</em>   <code>code</code>







  • Help Wanted - Find Your Next ColdFusion Job
Ben Nadel's Company - Epicenter Consulting Recent Blog Comments
May 22, 2013 at 11:07 AM
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
Could your problem be that "users.id" is actually an ARRAY, not a single value? Perhaps try it again with "users.id[1]" (I only have CF8 here at work). ... read »
May 22, 2013 at 7:52 AM
Nested Views, Routing, And Deep Linking With AngularJS
Hi, Just a quick thank you. As it happens, for my own purposes, the pending ui-router work being done in native angular is likely the one I'll adopt, but your exploration, code and documentation of ... read »
May 22, 2013 at 4:43 AM
How Do You Use The ColdFusion CFParam Tag?
'<cfparam>' or 'isDefined()and <cfset>' performs the same task.Is there any difference? ... read »
May 21, 2013 at 7:46 PM
Using Plupload For Drag & Drop File Uploads In ColdFusion
No luck. At least I have uncovered the cause, URLScan 3.1. Here is what I see in the IIS log when a file is over 30mb. 2013-05-21 23:29:05 10.105.45.128 GET /plupload/assets/jquery/jquery-1.8. ... read »
May 21, 2013 at 6:12 PM
Using Plupload For Drag & Drop File Uploads In ColdFusion
Ben, I did not see you after Pete Freitag's Lockdown session at cfObjective but he said that IIS sets file size limits at 30MB by default which just happened to be the threshold for file size when ... read »
May 21, 2013 at 11:51 AM
Ask Ben: Parsing Very Large XML Documents In ColdFusion
Looking at my first ever XML document that I have to parse and put into MS SQL 2000 with CF8. I get it to list the desired Field name, many times over, and have a long list of this field name displa ... read »
May 21, 2013 at 9:25 AM
Turning Off and On Identity Column in SQL Server
you are awesome..i am lucky to get this blog between such a garbage one....Thanks, Prashant ... read »
May 20, 2013 at 4:38 PM
Using A Dynamic Column Name With ValueList() In ColdFusion
@Dana, Your confusion is well founded, since this is a very confusing features. In fact, it ONLY works if you use array notation. Meaning, that this: arrayToList( query[ "columnName" ] ) ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools