ColdFusionのCFMAILタグで文字化け

CFMAILを実行する際に、charasetをISO-2022-JPに指定してメールを送信する場合に
文字化けが発生する場合がある。

自分の環境では文字化けは出なかったんで全然わからんかったが、
実際にエンドユーザーからメールの文字化けの問い合わせがあったんで発覚した。

原因は、CFMAILでcharasetをISO-2022-JP指定しメールの送信を行うと、
メール本文にマルチバイト文字があると
メールヘッダーの「Content-Transfer-Encoding」が「quoted-printable」に書き換えられて送信されてしまうようだ。
タイトルはマルチバイト文字が入っていても関係はなし。

メール本文がシングルバイト文字(半角英数など)だけの場合は、
charasetをISO-2022-JP指定し送信を行っても「Content-Transfer-Encoding」が「7bit」と正常だ。

これはColdFusionMX7,8とも共通なようで
対応方法は次の通り

<cfmail>
  <cfmailparam NAME="Content-Transfer-Encoding" VALUE="7bit">
  メール本文
</cfmail>

これで「Content-Transfer-Encoding」が「7bit」となっているのをColdFusion8で確認。
ColdFusionMX7は今のところ未確認。
参考にしたサイトによると、MX7はだめっぽい。
まあ、その後のパッチで対処されているのかもしれんけど。

参考サイト
ColdFusionlab. FreeTalk!!
文字化けすると、こう見える!