当前位置: 代码迷 >> PHP >> phpMailer 中文乱码有关问题
  详细解决方案

phpMailer 中文乱码有关问题

热度:232   发布时间:2016-04-29 00:18:02.0
phpMailer 中文乱码问题
本人用phpmailer 类库想发一封电子邮件,编码已经设置成了utf-8,但如果发件人,收件人,及主题中包含中文字符,则显示乱码问题,很是不爽。从网上找了一些方法,他们是修改 class.phpmailer.php 文件。由于我不想修改它,想求高人指点。。谢谢了先。

------解决方案--------------------
C/C++ code
我试验了一下,成功了,代码网上直接摘过来填了填,标题及内容都不乱码。楼主的php文件是windows的还是linux的? 注意php文件自身编码与mailer设置的编码一致,我下的最新的phpmailer,163发往QQ,成功。<?phpfunction postmail_jiucool_com($to,$subject = "",$body = ""){  //Author:Jiucool WebSite: http://www.jiucool.com    //$to 表示收件人地址 $subject 表示邮件标题 $body表示邮件正文  //error_reporting(E_ALL);  error_reporting(E_STRICT);  date_default_timezone_set("Asia/Shanghai");//设定时区东八区  require_once('class.phpmailer.php');  include("class.smtp.php");    $mail = new PHPMailer(); //new一个PHPMailer对象出来  $body = eregi_replace("[\]",'',$body); //对邮件内容进行必要的过滤  $mail->CharSet ="UTF-8";//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码  $mail->IsSMTP(); // 设定使用SMTP服务  $mail->SMTPDebug = 1; // 启用SMTP调试功能  // 1 = errors and messages  // 2 = messages only  $mail->SMTPAuth = true; // 启用 SMTP 验证功能  $mail->Host = "smtp.163.com"; // SMTP 服务器  $mail->Port = 25;// SMTP服务器的端口号  $mail->Username = "abcdii"; // SMTP服务器用户名  $mail->Password = "xxxx"; // SMTP服务器密码  $mail->SetFrom([email protected]', 'liangdong');  $mail->AddReplyTo("[email protected]","liangdong");  $mail->Subject = $subject;  $mail->AltBody = "To view the message, please use an HTML compatible email viewer! - From www.jiucool.com"; // optional, comment out and test  $mail->MsgHTML($body);  $address = $to;  $mail->AddAddress($address, "liangdong");  //$mail->AddAttachment("images/phpmailer.gif"); // attachment    //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment  if(!$mail->Send()) {  echo "Mailer Error: " . $mail->ErrorInfo;  } else {  echo "Message sent!恭喜,邮件发送成功!";  }  }postmail_jiucool_com([email protected]', '我是梁栋', '你好');?>