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>
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号