当前位置: 首页 > 面试题库 >

如何通过PHP的邮件功能发送带有阿拉伯语内容的电子邮件?

张鹏鹍
2023-03-14
问题内容

使用PHP的邮件功能发送带有阿拉伯语内容的电子邮件时遇到了挑战。假设我有一个简单的阿拉伯字符串:

بريد

我尝试了几种利用标头的方法,但是电子邮件内容最终仍然都带有以下内容:X*X1X(X1Y X/。但是,如果我使用阿拉伯字符,则电子邮件主题的编码正确(由于使用base64_encode,请参见下面的功能)

这是我尝试过的电子邮件功能之一

function sendSimpleMail($to,$from,$subject,$message) {
    $headers = 'MIME-Version: 1.0' ."\r\n";
    $headers .= 'To: '.$to ."\r\n";
    $headers .= 'From: '.$from . "\r\n";
    $headers .= 'Content-type: text/plain; charset=UTF-8; format=flowed' . "\r\n";
    $headers .= 'Content-Transfer-Encoding: 8bit'."\r\n";

    mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=',$message, $headers);
}

关于实现此目标的替代方法有何建议?


问题答案:

不幸的是,8bit编码在电子邮件中不可靠。许多邮件传输代理会删除邮件正文中每个字节的最高位。بريد"\xD8\xA8\xD8\xB1\xD9\x8A\xD8\xAF"在UTF-8字节;
从这些字节中删除最高位,您将得到ASCII "X(X1Y\nX/"

将非ASCII字符放入邮件正文的方法是设置Content-Transfer-Encodingbase64quoted- printable,然后分别使用base64_encode或编码正文quoted_printable_encode

quoted- printable如果邮件主要是ASCII会更好,因为它可以保留编码形式的可读性,并且对ASCII效率更高。如果整个邮件都是阿拉伯语,则base64可能是更好的选择。)



 类似资料:
  • 问题内容: 我在向我的收件箱(Gmail帐户)发送邮件时遇到问题,但是每次都转到垃圾邮件文件夹时。这是代码片段 我尝试过很多类似将标头设置为Reply-To,Return-Path等的方法,但是每次都将其转为垃圾邮件时。你能找出问题所在吗? 问题答案: 问题很简单,PHP-Mail功能没有使用配置良好的SMTP服务器。 如今,电子邮件客户端和服务器会对电子邮件发送服务器进行大量检查,例如反向DNS

  • 问题内容: 我似乎找不到我编写的应该发送带有附件的电子邮件的php函数的问题。我已经为此苦苦挣扎了一段时间了。 编辑 问题是邮件的消息与文件混合在一起并作为附件发送。 问题答案: Artefacto让我更加关注输出,并且找到了解决方法:

  • 尝试发送带有pdf附件的电子邮件,尝试使用swickmailer,但没有成功,此代码使用zip但不使用PDF:( 邮件被发送罚款,我得到的邮件:但附件是不存在的,在meial有所有的bas64编码在电子邮件像: onatatent-Type: Application/octet-stream; name="media.pdf"Content-transver-Encode: base 64 Con

  • 问题内容: 在我的中,我具有以下内容: 我的电子邮件代码: 当然,如果通过设置调试服务器,则可以在终端中看到该电子邮件。 但是,我实际上如何不将电子邮件发送到调试服务器,而是发送到user@gmail.com? 阅读你的答案后,让我弄明白一点: 你不能使用localhost(简单的ubuntu pc)发送电子邮件吗? 我认为在django 1.3中已经过时了,取而代之的是? 问题答案: 将电子邮件

  • 我正在尝试配置日志返回,以便在发生异常(日志级别:错误)时发送电子邮件。我还不能使它工作到目前为止,所以我想要求您的帮助与配置。 我有一个Spring boot应用程序,其中进行了一些处理: 我想触发一个电子邮件每当这个错误被记录。我学习了一些教程,并将logback.xml和smtp-appender.xml添加到目录: SMTP-附录.xml 我已经通过在localhost上安装了本地smtp

  • 我正在开发一个WordPress插件,其中我使用PHP邮件功能发送电子邮件,但是邮件功能有一个问题。它向我的非Gmail帐户发送电子邮件,但它不会向我的Gmail帐户发送电子邮件。我正在使用以下代码: 是我的代码有问题,还是邮件功能有问题?如果有其他方法可以发送电子邮件,请给我链接。