我在Symfony2 webapp中使用Swiftmailer。
// Subject and body dynamically come from database
$subject = "This is my subject with an apostroph ' in it.";
$bodytext = "Test text, also with an ' apostrophe in it.";
$message = \Swift_Message::newInstance()
->setSubject($subject)
->setFrom('me@mail.com')
->setTo('you@mail.com');
$message->setBody($bodytext);
$this->get('mailer')->send($message);
现在有一个特殊的字符,例如在我的主题中的撇号('
),电子邮件在我的电子邮件客户端中有一个奇怪的主题行:
这是我的主题,其中有一个叛逆者
'
有趣的是:正文显示正确,它只是错误格式化的主题。
现在我怎样才能处理这样的特殊字符 - 更好的是,在传递处理特殊字符的主题之前,我可以调用一个函数吗?
答案 0 :(得分:1)
尝试使用htmlentities PHP函数来逃避主题:
$subject = htmlentities("This is my subject with an apostroph ' in it.");
答案 1 :(得分:0)
对不起,我知道这很晚,但是它可能会帮助仍然有这些类似问题的任何人。 我在SwiftMailer 6.2上遇到了撇号'和&符&的问题,因此结合使用htmlspecialchars_decode和html_entity_decode来转换主题可以为我解决:
->setSubject(htmlspecialchars_decode(html_entity_decode($subject), ENT_QUOTES))
有关更多说明,请参见https://www.php.net/manual/en/function.html-entity-decode.php和https://www.php.net/manual/en/function.htmlspecialchars-decode.php。