Специальные символы ColdFusion cfmail в строке темы - PullRequest
5 голосов
/ 21 февраля 2012

Специальные символы в строке темы письма преобразуются в вопросительные знаки или поля.

Я попытался обернуть динамическую строку строки темы в URLEncodedFormat, однако все оказалось напрасно.

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

Ответы [ 2 ]

10 голосов
/ 21 февраля 2012

Предполагая, что специальные символы являются символами Юникода, вам придется кодировать строку в формате 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- Кодированное слово

" кодировка " может быть любым набором символов, зарегистрированных в IANA.Обычно это будет та же кодировка, что и в теле сообщения.

" encoding " может быть либо "Q", обозначающим Q-кодировку, которая аналогична кодируемой для печати кодировке, либо "B"«обозначает кодировку base64.

» кодированный текст »- это кодированный в Q или base64 текст.

0 голосов
/ 17 декабря 2014

Также: добавьте charset = "utf-8" в тег cfmail.Если вы используете utf-8 в теме, вы, вероятно, также будете использовать ее в теле.

...