gpt4 book ai didi

php - 使用PHP的邮件功能时如何在收件人姓名中使用特殊字符

转载 作者:行者123 更新时间:2023-12-03 01:04:25 24 4
gpt4 key购买 nike

如何将格式为“Name <user@example.com> ”的电子邮件发送至:

ŠŒŽœžŸ¥µÀÁÃÄÅÆÇÉÊËÍÎÏÐÒÓÕÖØÙÜÝßàáâåæçèéëìíîïðñóôõöøùûýÿ <user@example.com>

显然,其中许多字符永远不会出现在名称中,但如果出现,我希望它们不会阻止电子邮件成功发送。

目前,此操作失败,如 Apache 的 error.log 中所述:

Ignoring invalid 'To:' recipient address '¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ ' Transaction aborted: no recipients specified

如果可能的话,我想保留特殊字符“原样”。否则,我可以使用某种音译功能来清理名称吗?

使用示例:

 <?php
$to = "ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ <CHANGED@gmail.com>";
$subject = "Test Subject";
$body = "Test Body";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
?>

最佳答案

mb_encode_mimeheader应该这样做,就像示例中所示:

mb_internal_encoding('UTF-8');

$name = '山本';
$email = 'yamamoto@example.com';
$addr = mb_encode_mimeheader($name, 'UTF-8', 'Q') . " <$email>";

为了获得更好的兼容性,您应该设置 header Mime-Version: 1.0,以便所有邮件客户端都知道您正在使用 MIME 编码。

最终的电子邮件标题应如下所示:

To: =?UTF-8?Q?=E5=B0=81=E3=83=90=E3=83=BC?= <yamamoto@example.com>
Subject: =?UTF-8?Q?=E3=81=93=E3=82=93=E3=81=AB=E3=81=A1=E3=81=AF?=
Mime-Version: 1.0

渲染为:

To: 山本 <yamamoto@example.com>
Subject: こんにちは

相关:https://stackoverflow.com/a/13569317/476

关于php - 使用PHP的邮件功能时如何在收件人姓名中使用特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com