今天看了PHP中的一个关于发送电子邮件的函数包——PHPMailer,以前一直未接触过这类东东,就想尝试一下,结果遇到不少问题,通过短暂的百度和尝试终于成功了,下面为大家分享一下我的结果!
首先进入PHPMailer的官网-http://phpmailer.worxware.com/,进入后直奔主题,找到DownLoads里的PHPMailer For PHP5/6(这里大家注意一下,官网的一个小bug,点击PHPMailer For PHP5/6,却出现的是PHPMailer For PHP4的下载页面,这也造成了许多新手的很多错误,官网戏弄人阿!!)这里直接给出链接:http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/ 下载完后解压出来一个PHPMailer的函数包,我这里下载的是PHPMailer v5.1版本。
将此文件夹放入到你的服务器目录下,里面已经有官方给的示例文件、文档文件和测试文件,这里我们使用test文件夹里的testemail.php测试使用。 这里直接给出我写好的能用的代码,大家可以拿去测试,注意一下,这个版本官方也支持了简体中文的错误信息,通过设置calss.phpmailer.php里的SetLanguage('zh_cn')即可。下面我们先来测试一下163的邮箱 .
QQ邮箱的使用和163是一样的,这里我们就不测试了。下面我们再来测试一下GMail邮箱的使用!首先还是给出测试Gmail的源码
首先进入PHPMailer的官网-http://phpmailer.worxware.com/,进入后直奔主题,找到DownLoads里的PHPMailer For PHP5/6(这里大家注意一下,官网的一个小bug,点击PHPMailer For PHP5/6,却出现的是PHPMailer For PHP4的下载页面,这也造成了许多新手的很多错误,官网戏弄人阿!!)这里直接给出链接:http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/ 下载完后解压出来一个PHPMailer的函数包,我这里下载的是PHPMailer v5.1版本。
将此文件夹放入到你的服务器目录下,里面已经有官方给的示例文件、文档文件和测试文件,这里我们使用test文件夹里的testemail.php测试使用。 这里直接给出我写好的能用的代码,大家可以拿去测试,注意一下,这个版本官方也支持了简体中文的错误信息,通过设置calss.phpmailer.php里的SetLanguage('zh_cn')即可。下面我们先来测试一下163的邮箱 .
<?php
require '../class.phpmailer.php';
require 'pw.php'; //这里是我的密码文件,只是为了保护密码而已
try {
$mail = new PHPMailer(true); //建立实例
$body = file_get_contents('contents.html');
$body = preg_replace('/\\\\/','', $body); //替换掉变量body里的反斜线
$mail->IsSMTP(); // 使用SMTP
$mail->SMTPAuth = true; // 使用SMTP认证
$mail->Port = 25; // 设置SMTP服务器的端口号
$mail->Host = "smtp.163.com"; // SMTP服务器地址
$mail->Username = "manyanlong"; // SMTP服务器用户名 这里注意163的邮箱用户名不带@163.com其他的都带
$mail->Password = "$pw"; // SMTP服务器密码
$mail->SetLanguage('zh_cn'); //设置错误信息语言为简体中文
//$mail->IsSendmail(); 这里我们没有Sendmail组件,所以不使用
$mail->AddReplyTo("manyanlong@163.com","小龙"); //回复的邮件地址
$mail->From = "manyanlong@163.com"; //邮件发送人
$mail->FromName = "小龙";
$to = "130663666@qq.com";
$mail->AddAddress($to); //邮件的发送地址
$mail->Subject = "PHPMailer测试"; //邮件的标题
//$mail->AltBody = "附加信息,可以略过的";
$mail->WordWrap = 80; //设置换行
$mail->MsgHTML($body); //邮件的内容
$mail->IsHTML(true); // 作为HTML格式发送电子邮件
$mail->Send();
echo '发送电子邮件成功';
} catch (phpmailerException $e) {
echo $e->errorMessage();
}
?>
测试结果成功发送到QQ邮箱里
。QQ邮箱的使用和163是一样的,这里我们就不测试了。下面我们再来测试一下GMail邮箱的使用!首先还是给出测试Gmail的源码
<?php
/*
* 使用GMail之前我们要打开PHP.INI里的extension=php_openssl.dll插件
* 因为GMail的SMTP服务器要求SSL连接
* GMail的SMTP服务器的端口号要写465。
*/
require '../class.phpmailer.php';
require 'pw.php'; //这里是我的密码文件,只是为了保护密码而已
try {
$mail = new PHPMailer(true); //建立实例
$body = file_get_contents('contents.html');
$body = preg_replace('/\\\\/','', $body); //替换掉变量body里的反斜线
$mail->IsSMTP(); // 使用SMTP
$mail->SMTPAuth = true; // 使用SMTP认证
$mail->SMTPSecure = "ssl"; //设置SMTP的
$mail->Port = 465; // 设置SMTP服务器的端口号
$mail->Host = "smtp.gmail.com"; // SMTP服务器地址
$mail->Username = "fanwaigua@gmail.com"; // SMTP服务器用户名
$mail->Password = "$pw"; // SMTP服务器密码
$mail->SetLanguage('zh_cn'); //设置错误信息语言为简体中文
//$mail->IsSendmail(); 这里我们没有Sendmail组件,所以不使用
$mail->AddReplyTo("fanwaigua@gmail.com","小龙"); //回复的邮件地址
$mail->From = "fanwaigua@gmail.com"; //邮件发送人
$mail->FromName = "小龙";
$to = "130663666@qq.com";
$mail->AddAddress($to); //邮件的发送地址
$mail->Subject = "PHPMailer测试"; //邮件的标题
//$mail->AltBody = "附加信息,可以略过的";
$mail->WordWrap = 80; //设置换行
$mail->MsgHTML($body); //邮件的内容
$mail->IsHTML(true); // 作为HTML格式发送电子邮件
$mail->Send();
echo '发送电子邮件成功';
} catch (phpmailerException $e) {
echo $e->errorMessage();
}
?>
测试结果成功发送到QQ邮箱里!
到这里我们关于简单使用PHPMailer发送邮件就结束了,有兴趣的朋友可以详细研究一下class.phpmailer.php这几个类,这里就不详细看了,有兴趣的朋友欢迎留言,在使用PHPMailer过程遇到问题的朋友也可以留言 我们一起交流。