Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ColdFusion cfmail special characters in subject line

Special characters in the subject line of the mail getting converted in to question marks or boxes.

I have tried to wrap the dynamic string of the subject line in URLEncodedFormat , however ended up in vain.

<cfset strSubject= URLEncodedFormat(s)>
<cfmail 
  from="[email protected]" 
  to="[email protected]" 
  subject="#strSubject#"         
  type="html"
>
  #testText#
</cfmail>
like image 904
Arasu Avatar asked Feb 21 '12 09:02

Arasu


1 Answers

Assuming the special characters are unicode charactes, you will have to encode the string to a base64 format and use that in the subject line. Like this,

<cfset strSubject="Demande d’chantillons supplémentaires">
<cfset strSubject=ToBase64(strSubject, "utf-8")>

<cfmail from="[email protected]" to="[email protected]" subject="=?utf-8?B?#strSubject#?=" type="html">
    #testText#
</cfmail>

The subject line must be in the format =?<charset>?<encoding>?<encoded text>?=

The ? and = are required.

MIME - Encoded Word

"charset" may be any character set registered with IANA. Typically it would be the same charset as the message body.

"encoding" can be either "Q" denoting Q-encoding that is similar to the quoted-printable encoding, or "B" denoting base64 encoding.

"encoded text" is the Q-encoded or base64-encoded text.

like image 144
Prabhu Thomas Avatar answered Oct 07 '22 05:10

Prabhu Thomas