Home >Backend Development >PHP Tutorial > phpMailer 中文乱码有关问题
phpMailer 中文乱码问题
本人用phpmailer 类库想发一封电子邮件,编码已经设置成了utf-8,但如果发件人,收件人,及主题中包含中文字符,则显示乱码问题,很是不爽。从网上找了一些方法,他们是修改 class.phpmailer.php 文件。由于我不想修改它,想求高人指点。。谢谢了先。
------解决方案--------------------
我试验了一下,成功了,代码网上直接摘过来填了填,标题及内容都不乱码。 楼主的php文件是windows的还是linux的? 注意php文件自身编码与mailer设置的编码一致,我下的最新的phpmailer,163发往QQ,成功。 <?php function 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('abcdii@163.com', 'liangdong'); $mail->AddReplyTo("abcdii@163.com","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('120848369@qq.com', '我是梁栋', '你好'); ?> <div class="clear"> </div>