有没有办法在SwiftMailer中更改标头的编码?

问题描述 投票:3回答:2

我正在使用SwiftMailer发送电子邮件,但我对UTF-8科目有一些编纂问题。 Swiftmailer使用QPHeaderEncoder作为默认编码电子邮件标题,而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)) ;
php symfony swiftmailer
2个回答
2
投票

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

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

我个人通过禁用mbstring.func_overload解决了这个问题。


0
投票

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

另外,请确保你设置了Charset('utf-8')你的消息。

© www.soinside.com 2019 - 2024. All rights reserved.