4

SwiftMailer用来发送电子邮件,但我有一些主题的编码问题UTF-8。SwiftmailerQPHeaderEncoder默认使用对电子邮件标头进行编码,而 safeMap 看起来在某些UTF-8法语字符方面存在一些问题。我使用的一个主题包含单词 trouvé(在法语中找到),当主题到达用户时,它会显示 trouv。

我想使用与NativeQPContentEncoder内容编码器类似的东西,但对于标题,只有Base64Quoted Printable编码器。

有没有办法解决这个问题,也许我做错了什么所以我在这里粘贴我正在使用的代码

$message = Swift_Message::newInstance()

// set encoding in 8 bit
->setEncoder(Swift_Encoding::get8BitEncoding())

// Give the message a subject
->setSubject($subject)

// Set the From address with an associative array
->setFrom(array($from => $niceFrom))

// Set the To addresses with an associative array
->setTo(array($to)) ;
4

2 回答 2

2

检查您的 PHP 配置mbstring.func_overload选项中是否有除0. 如果是,请将其更改为0,重新加载您的网络服务器并尝试再次发送消息。

mbstring.func_overload 覆盖一些字符串 PHP 函数,并可能导致 UTF-8 出现棘手的错误。

我个人通过禁用mbstring.func_overload.

于 2017-12-19T10:35:28.707 回答
0

首先,确保您知道您的主题字符串是如何编码的。如果它不是 UTF-8 则 utf8_encode() 它。

另外,请确保您 setCharset('utf-8') 您的消息。

于 2013-01-31T19:23:15.343 回答