【问题标题】:Laravel mail with accent in subjectLaravel 邮件主题带有重音
【发布时间】:2015-10-27 10:05:39
【问题描述】:

我有一个发送邮件的服务。

我的问题是标题中的主题包含重音符号,但它们没有出现在邮件中。

例如当我输入时:

->subject ( 'Olvidó de Contrase$ntildea' );

在邮件中,主题显示为“Olvid de Contrase”

它不显示 ó 和 ñ 字母。

非常感谢任何帮助。

【问题讨论】:

  • 看来您正在使用 HTML 实体。我认为你应该只使用 UTF8 字符。 Laravel 在后台使用 Swiftmailer,它应该能正确处理编码。

标签: php email laravel


【解决方案1】:

主题是电子邮件标题。并且标头只能包含 ASCII 字符。

因此,您必须使用 base64 (B) 和可引用打印 (Q) 对标头进行编码。

$to = 'example@example.com';
$subject = 'Subject with non ASCII ó¿¡á';
$message = 'Message with non ASCII ó¿¡á';
$headers = 'From: example@example.com'."\r\n"
.'Content-Type: text/plain; charset=utf-8'."\r\n";
mail($to, '=?utf-8?B?'.base64_encode($subject).'?=', $message, $headers);

阅读有关 RFC 1342(Internet 消息标头中非 ASCII 文本的表示)的更多信息:http://datatracker.ietf.org/doc/rfc1342/

【讨论】:

    【解决方案2】:

    好的,我找到了解决方案,是这样的

    ->subject(utf8_encode( 'Olvidó de Contraseña' ));
    

    完美运行!感谢您的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2016-08-07
      • 2022-06-30
      • 1970-01-01
      • 2017-09-12
      • 2017-10-20
      • 1970-01-01
      相关资源
      最近更新 更多