Using A Name Suffix In ColdFusion's CFMail Tag

Posted May 8, 2007 at 9:08 AM by Ben Nadel

Tags: ColdFusion

Usually, when sending an email using ColdFusion's CFMail tag, I use very simple email addresses like this:

  • <cfmail
  • to="ben@xxxxxxxxx.com"
  • from="libby@xxxxxxxxx.com"
  • subject="Thanks for last night!">
  •  
  • Thanks for last night. I had a great time.
  • Let's do that again soon.
  •  
  • </cfmail>

But, sometimes, when I want to up the level of professionalism, I will add the sender and recipient names to the email addresses:

  • <cfmail
  • to="Ben <ben@xxxxxxxxx.com>"
  • from="Libby <libby@xxxxxxxxx.com>"
  • subject="Thanks for last night!">
  •  
  • Thanks for last night. I had a great time.
  • Let's do that again soon.
  •  
  • </cfmail>

Doing this will use the first value "Ben" as the name to display and will use the value in between the "<" and ">" as the user's email address. But what happens if that name contains a suffix like "Jr" or "Sr"? When I first came up against this, I tried to do what I had done before:

  • <cfmail
  • to="John Noble, Jr. <john.jr@xxxxxxxxx.com>"
  • from="John Noble, Sr. <john.sr@xxxxxxxxx.com>"
  • subject="Son, I found a girl for you"
  • type="HTML">
  •  
  • <p>
  • Dear Son,
  • </p>
  •  
  • <p>
  • This is a girl from your mother's drawing class. She
  • looks like a ton of fun. I really think you should
  • consider meeting her for drinks. Here's a URL:
  • http://flickr.com/photos/keppyslinger/477844455/
  • </p>
  •  
  • </cfmail>

In this case, John Noble, Sr. is sending an email to his son, John Noble, Jr.. However, when I try to run the code above, I get the following ColdFusion error:

Attribute validation error for tag CFMAIL. The value of the attribute to, which is currently "John Noble, Jr. <john.jr@xxxxxxxxx.com>", is invalid.

The problem with this is that you can use ColdFusion's CFMail tag to send to multiple recipients by using a comma-delimited list of email addresses in the TO attribute:

  • <cfmail
  • to="dude@xxxx.com,chick@xxxxx.com,dog@xxxxxx.com"
  • from="ben@xxxxxx.com"
  • subject="To all of you!">
  •  
  • Hey guys, you all rock!
  •  
  • </cfmail>

Well, that is to say, that is not a problem. This is, in fact, a highyl beneficial feature of the ColdFusion language. But, my problem in this case is that the comma in the suffix name is confusing ColdFusion into thinking that there are multiple TO addresses. The trick to fixing this, as I just discovered, is to wrap the name of the sender or recipient in quotes so that ColdFusion knows to treat it as a whole value. This will, for lack of a better term, escape the comma in the CFMail attributes:

  • <cfmail
  • to="""John Noble, Jr."" <john.jr@xxxxxxxxx.com>"
  • from="""John Noble, Sr."" <john.sr@xxxxxxxxx.com>"
  • subject="Son, I found a girl for you"
  • type="HTML">
  •  
  • <p>
  • Dear Son,
  • </p>
  •  
  • <p>
  • This is a girl from your mother's drawing class. She
  • looks like a ton of fun. I really think you should
  • consider meeting her for drinks. Here's a URL:
  • http://flickr.com/photos/keppyslinger/477844455/
  • </p>
  •  
  • </cfmail>

Notice that the names are wrapped in double-double quotes. Remember that in ColdFusion, in order to escape double quotes within a double-quote-quoted string value, you have to use two quotes in a row.

As it turns out though, ColdFusion provides an even easier way to handle this situation. If you don't want to use the quote escaping, you can swap up the order of the name and email address and place the display name within parenthesis:

  • <cfmail
  • to="john.jr@xxxxxxxxx.com (John Noble, Jr.)"
  • from="john.sr@xxxxxxxxx.com (John Noble, Sr.)"
  • subject="Son, I found a girl for you"
  • type="HTML">
  •  
  • <p>
  • Dear Son,
  • </p>
  •  
  • <p>
  • This is a girl from your mother's drawing class. She
  • looks like a ton of fun. I really think you should
  • consider meeting her for drinks. Here's a URL:
  • http://flickr.com/photos/keppyslinger/477844455/
  • </p>
  •  
  • </cfmail>

This will accomplish the same exact thing with slightly more readable code. I am not sure if one offers advantages over the other outside of the need to escape the comma. So, that's how you escape commas within the user name of the ColdFusion CFMail tag.



Reader Comments

May 8, 2007 at 9:40 AM // reply »
79 Comments

I never knew Jurassic Park was a real place! =)


May 8, 2007 at 9:46 AM // reply »
11,238 Comments

Just don't be fooled. That was a professional dinosaur rider on a closed road. Do not try that at home.


Dec 28, 2007 at 1:44 PM // reply »
2 Comments

Thanks for the usefully Examples.


Feb 18, 2008 at 9:59 AM // reply »
2 Comments

Thanks Ben,

I experimented a while back and gave up. Nice to know the proper way to handle it. I wonder why this is not documented by Adobe... or, maybe it is and I missed it.

Anyway, thanks for the tip!


Sep 9, 2009 at 5:58 PM // reply »
1 Comments

I tried all this and none of it works. Still get the error.


Sep 12, 2009 at 10:23 PM // reply »
11,238 Comments

@Dusty,

What error is it giving you?


Sep 17, 2009 at 8:45 AM // reply »
2 Comments

Thank you thank you thank you! This is EXACTLY what I've been looking for!


Sep 17, 2009 at 10:48 AM // reply »
2 Comments

It's clear that she was riding the dinosaur under controlled conditions, thanks for the warning Ben :)

@Dusty, I got it up and running now. Post the error please?


Oct 20, 2009 at 8:20 PM // reply »
1 Comments

The only one of these that worked, using CFMAIL and SmarterMail, was the double-double quote approach. Thanks very much for this helpful page. Bob mack


Oct 31, 2009 at 4:17 PM // reply »
11,238 Comments

@Robert,

Yeah, that's the one I've found to be the most universal.


Nov 2, 2009 at 4:46 PM // reply »
6 Comments

I noticed this only became an issue after I upgraded from MX7 to CF9. I had a cfmail tag that in the from address had "Companyname, Inc <test@email.com> and this worked perfectly in MX7.

After upgraded to 9, all my mail started going in the undeliverable folder. Took a while to figure it out but thanks for pointing this out Ben.


Nov 3, 2009 at 12:29 PM // reply »
11,238 Comments

@Rob,

That's good to know - I haven't upgraded to CF9 yet, but I'll keep my eyes open.


Jan 20, 2010 at 2:40 PM // reply »
7 Comments

I just ran into the comma problem. Thanks for this post, it solved my problem.


Jan 20, 2010 at 10:51 PM // reply »
11,238 Comments

@Don,

Glad to be here to help.


Mar 18, 2010 at 6:59 AM // reply »
1 Comments

Thanks Ben. This is really a very helpful article. Keep posting... Congrats.


May 11, 2010 at 10:45 PM // reply »
5 Comments

The question is now how do you get CSS in your cfmail body. Yikes!


May 11, 2010 at 10:57 PM // reply »
6 Comments

@ Omar.. If you're including a stylesheet, be sure to put the full path since it is an email and would need to be downloaded over the internet...

For example...

<link rel="stylesheet" href="http://www.yourdomain.com/css/styles.css" type="text/css" />

hope that helps.


May 11, 2010 at 11:54 PM // reply »
5 Comments

@Rob G., im not sure why this doesn't work for me. I'll try it again.


May 11, 2010 at 11:59 PM // reply »
6 Comments

Be sure your email program is not set to block html. Also some webmail doesn't download html accurately either.


May 13, 2010 at 10:31 PM // reply »
11,238 Comments

@Omar,

I find CSS in email to be hit or miss. I tend to use inline CSS to get the most stable results. But, I am far from the best guy to talk to about this; I don't send out too many emails.


May 14, 2010 at 12:25 AM // reply »
5 Comments

@Ben Nadel, I've seem to have got it working with this, noting the style tag wrapped around the link

<style type="text/css">

<link rel="stylesheet" href="http://www.domain.com/css/mail.css" type="text/css" />

</style>


May 16, 2010 at 9:43 PM // reply »
11,238 Comments

@Omar,

Interesting. I am not sure why that would work. It must escape the Style tags (allowing the Link tag to execute).


Nov 8, 2010 at 10:17 AM // reply »
1 Comments

I always know that when I google any CF problem and end up on this guy's website, I've found the solution. Thanks Ben for all your support. This, as usual, was exactly what I was looking for.


Nov 10, 2010 at 10:10 AM // reply »
11,238 Comments

@Matt,

Very awesome! Glad I could be here to help :)


Jun 30, 2011 at 6:01 AM // reply »
1 Comments

Hi Ben
I was wondering if you knew how to display special chars in the cfmail subjuct line.

I want & not to be &amp! ?


Jul 12, 2011 at 4:55 PM // reply »
10 Comments

Saved my neck again, Ben! :) Great info!


Jan 15, 2013 at 6:34 AM // reply »
4 Comments

Adobe should hire Ben as the official solution site for ColdFusion issues/questions, or at least throw some love his way.

Thanks for saving me a bundle of time!



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 17, 2013 at 7:42 PM
HashKeyCopier - An AngularJS Utility Class For Merging Cached And Live Data
Ben - thanks so much for posting these Angular articles and findings, they've been a huge help towards learning one of the more 'complex' JavaScript frameworks out there (IMO). I have been using Angu ... read »
May 16, 2013 at 5:01 PM
UPDATE: Parsing CSV Data Files In ColdFusion With csvToArray()
Your code was the closest thing I've found to obtaining some direction for converting ISO fields to values that CF can translate properly. Thank you for posting! ... read »
May 15, 2013 at 10:37 PM
Very Simple Pusher And ColdFusion Powered Chat
hi id making plz easy ... read »
May 15, 2013 at 6:07 PM
Making SOAP Web Service Requests With ColdFusion And CFHTTP
Ben, you once again saved my bacon at work. Thank you, thank you, thank you! ... read »
May 15, 2013 at 4:15 PM
What If All User Interface (UI) Data Came In Reports?
@Josh, Thanks! @Ben, I definitely recommend the David West book "Object Thinking" I've been quoting from. It goes deeply into the philosophy and history of OO programming. His breadth ... read »
May 15, 2013 at 11:36 AM
Ask Ben: Print Part Of A Web Page With jQuery
I found this helpfull when you need to keep (refresh) the original parent page after closing the iframe child print dialog (Hoping you're not using a form at this time so it won't submit again): On ... read »
May 14, 2013 at 7:13 PM
What If All User Interface (UI) Data Came In Reports?
@Jonah, If there's any books you'd recommend on the subject of domain modelling, I'd love to hear it. I just downloaded the free PDF of "Domain Driven Design Quickly". Figured I'd give it ... read »
May 14, 2013 at 6:57 PM
The UX Of Prototyping: Low-Fidelity Is The New High-Fidelity
@Phillip, I'm not sure I follow what you mean? Are you saying that you looked at the list of widgets provided by the jQuery UI and let that be your style guide? ... read »
InVision App - Prototyping Made Beautiful With Prototyping Tools