阿拉伯语字符串,通过php邮件发送到hotmail电子邮件,在hotmail电子邮件中查看时以奇怪的符号显示


Arabic string , which is send to hotmail email via php mail, is demonstrated in strange symbols in when viewed inside hotmail email

>yahoo mail似乎能够显示使用$_Post的变量以及不使用此方法声明的变量但是在hotmail中,只有声明的没有$_Post的变量才会显示在电子邮件中

我试图在 php 和 html 页面中包含<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>但没有成功

下面的文本是发送到hotmail的电子邮件

  المرسل
    الاسم: &#1576;&#1588;&#1575;&#1585;  التعليق:&#1607;&#1584;&#1575; &#1578;&#1593;&#1604;&#1610;&#1602;

PHP代码如下

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title> php file</title>
   <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
  <body dir="rtl">
<?php
$fname= $_POST['firstName'];
$lname= $_POST['lastName'];
$email= $_POST['email'];
$comment=$_POST['comment'];
$from = "المرسل ";

  $msg = "الاسم: $fname'n"."التعليق:$comment'n";
  $subject= "Visitor comment";
  $to= "example@hotmail.com";
  mail($to,$subject,$msg, $from);


?>
</body>
</html>

你能指出可能的问题是什么吗?

标头(如from)应根据RFC-2048进行格式化

此外,您还需要对电子邮件正文进行MIME编码如果要在电子邮件正文中使用 ASCII 以外的任何内容

我不知道有什么简单的方法可以很好地做到这一点,但是如果你对这些术语进行搜索,有很多简单的代码可以解决整个问题空间的子集

插入

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

$_Post 正在使用的 HTML 文件的<head>标记之间

W T5alesh wa7AD 3rs zy sa7eb elta3lekat fo2 ynaked 3alek ;-)

这可能是电子邮件

不支持 unicode charecters,特别是阿拉伯语不像日语或俄语那样得到广泛支持,因此您必须更改格式才能使其正确显示。此外,与英语不同,阿拉伯语是从右到左阅读的。