发送电子邮件和PHP中的字符编码 [英] Character Encoding in Sending Email and PHP

查看:116
本文介绍了发送电子邮件和PHP中的字符编码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的联系人页面,用于发送电子邮件,其中包含以下代码的联系人数据。但我不能读任何他们,因为字符是不可读的。根据我的网站内容我猜这些电子邮件是阿拉伯语。我在我的浏览器视图中尝试这么多字符编码,但问题仍然存在。例如,这是一封电子邮件的一部分:اÙÙ...دپÙر
我想知道该代码的错误,我如何解决它,以及如何从以前的电子邮件阅读文本? p>

I have a simple contact page that sends email with contact data with code below. But I can not read any of them because the characters are not readable. Based on my website content i guess these emails are Arabic. I tried so many character encoding in my browser view but the problem still exists. For example,Thats a part of one email :احمدپور I want to know whats wrong with that code, How I can fix it and how I can read the texts from previous emails?

<?php

$EmailFrom = "info@example.com";
$EmailTo = "info@example.com";
$Subject = Trim(stripslashes($_POST['City'])); 
$Name = Trim(stripslashes($_POST['Name'])); 
$Tel = Trim(stripslashes($_POST['Tel'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Message = Trim(stripslashes($_POST['Message'])); 

// validation
$validationOK=true;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
  exit;
}

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Tel: ";
$Body .= $Tel;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page 
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>


推荐答案

试试

$header = "From: <$EmailFrom> \r\n";
$header .= "MIME-Version: 1.0 \r\n";
$header .= "Content-Type: text/html;charset=utf-8";

$success = mail($EmailTo, $Subject, $Body, $header );

这篇关于发送电子邮件和PHP中的字符编码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆