5

邮件主题行中的特殊字符被转换为问号或方框。

我试图将主题行的动态字符串包装在 URLEncodedFormat 中,但结果是徒劳的。

<cfset strSubject= URLEncodedFormat(s)>
<cfmail 
  from="xxxxx@xx.com" 
  to="yyyyyyy@yyy.com" 
  subject="#strSubject#"         
  type="html"
>
  #testText#
</cfmail>
4

2 回答 2

10

假设特殊字符是 unicode 字符,您必须将字符串编码为 base64 格式并在主题行中使用它。像这样,

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

<cfmail from="test@test.com" to="test@test.com" subject="=?utf-8?B?#strSubject#?=" type="html">
    #testText#
</cfmail>

主题行必须采用以下格式=?<charset>?<encoding>?<encoded text>?=

?=是必需的。

MIME - 编码字

charset ” 可以是在 IANA 注册的任何字符集。通常它与消息正文的字符集相同。

encoding ”可以是“Q”,表示类似于引用的可打印编码的 Q 编码,或“B”表示 base64 编码。

编码文本”是 Q 编码或 base64 编码的文本。

于 2012-02-21T09:48:25.880 回答
0

另外:将 charset="utf-8" 添加到 cfmail 标记。如果您在主题中使用 utf-8,您可能还会在正文中使用它。

于 2014-12-17T16:00:33.567 回答