Есть ли способ изменить кодировку заголовков в SwiftMailer?
Я использую SwiftMailer
отправлять электронные письма, но у меня есть некоторые проблемы с кодификацией UTF-8
предметы. Swiftmailer использует QPHeaderEncoder
по умолчанию кодирует заголовки писем, а safeMap выглядит так, как будто у него есть проблемы с некоторыми UTF-8
Французские персонажи. Один предмет, который я использую, содержит слово Trouvé (встречается на французском языке), и когда субъект попадает к пользователю, он показывает Trouv.
Я хотел бы использовать что-то похожее на NativeQPContentEncoder
это доступно в качестве кодировщиков контента, но для заголовков есть только Base64
а также Quoted 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)) ;
2 ответа
Проверьте, если в вашей конфигурации PHP mbstring.func_overload
опция имеет любое значение, кроме 0
, Если да, измените его на 0
, перезагрузите ваш веб-сервер и попробуйте отправить сообщение снова.
mbstring.func_overload
переопределяет некоторые строковые функции PHP и может привести к хитрым ошибкам с UTF-8.
Лично я решил именно эту проблему, отключив mbstring.func_overload
,
Во-первых, убедитесь, что вы знаете, как закодирована строка вашего предмета. Если это не UTF-8, тогда utf8_encode() это.
Кроме того, убедитесь, что вы установили Charset('utf-8') ваше сообщение.