What the heck is going on, you ask? Say hello to Tersus.

Bare bones? You got it. Tersus is an achingly simple WordPress theme without all the usual cruft. Please pardon the mess. This child theme is still under development.

CD

2006-11-28

CFMAIL and Dynamic Message Content

Pardon me while I put on my geek hat. I’ve been hitting my head up against a wall trying to figure out the best way to dynamically include content into an email using ColdFusion.

I tried the most logical solution first, define the URL with the data I wanted and pass that onto the SEND script.

 <input type="hidden" name="msgString" value="http://example.com/msg/test.cfm?subject=Hi&sender=joe@example.com&recip=john@example.com" />

Then, I converted the string to a variable I could more easily work with…

<cfset msgStr = "#form.messageString#" />
<cfmail to="user@example.com"
 from="user@example.com"
 subject="Hey there!"
 server="mail.example.com"
 type="html">
  <cfinclude url="#msgStr#" />
</cfmail>

No luck. ColdFusion choked on the dynamic string everytime. When I tried to define the string as a variable and parse it with CFOUTPUT, ColdFusion choked again.

So, I thought, why not try using CFHTTP to grab the data, and then have it render into the body of the email I wanted to send.

<cfhttp resolveurl="yes" url="http://www.example.com/#form.messageString#" method="get"></cfhttp>
<cfmail to="user@example.com"
 from="user@example.com"
 subject="Hey there!"
 server="mail.example.com"
 type="html">
  #CFHTTP.FileContent#
</cfmail>

BINGO! That worked. In retrospect, it seems pretty easy to do it this way… but I couldn’t get it to work right for quite some time. Now it works right, and the client should be happy.

This item was posted by Chris Harrison.

Categories:

Comments are closed.