原理
其实使用这个类进行邮件发送不是把自己的服务器搭建成邮箱服务器,只是使用其他第三方邮件服务器(qq,163,雅虎啊之类的),通过密钥进行身份识别后,就可以使用这个类中的方法进行邮件发送了,比较形象的描述就是纯代码的客户端软件。
更深一点的解释就是使用SMTP协议(还有别的同样作用的协议),使用这个协议就可以允许从第三方登录自己的邮箱管理,进行邮件的发送。
使用方法
方法很多啦,简单点来说就是下面的形式:
其中:
- Phpmailer.php 是主要文件,主要功能都是通过这个文件实现的
- Smtp.php文件是针对SMTP协议的,如果使用别的协议就要使用别的协议文件
- index.php 就是主要访问的文件,其实就是通过index.php来调用Phpmailer.php
不用多说了,直接看过程:
2.1 去163邮箱开通第三方客户端登录服务
我这里是已经设置好了的,点击我鼠标放的地方,按照一步一步设置好之后,会让你设置一个授权码,记住这个授权码,在接下来中会当作密码使用,其实就是除了网易自己的入口,别的第三方软件想要登录你的邮箱都是使用这个授权码来作为password的。
还有一个就是你的SMTP服务器名,虽然默认都是smtp.163.com,但是接下来要有用的。
2.2 编写php文件来调用Phpmailer.php
直接看代码吧,很简单的。
<?php
//header()之前貌似是不能有内容的
header("Content-type:text/html;charset=utf-8");
//调用文件,注意路径
require_once './Phpmailer/Phpmailer.php';
require_once './Phpmailer/Smtp.php';
//开始调用
$mail=new PHPMailer(); //实例化PHPMailer()类
$mail->IsSMTP(); //判断是否支持SMTP协议
$mail->SMTPAuth=true;
$mail->Host='smtp.163.com';
$mail->Username='这里是你的用户名,如果是163的话一般是你的手机号';
$mail->Password='这里就是你在开通SMTP时设置的授权码';
$mail->Port=25;
$mail->Subject='Subject'; //邮件主题
$mail->IsHTML(true); //邮件正文是不是使用html语言编写
$mail->CharSet='UTF-8';
$mail->From='你的邮箱地址,是邮箱地址,不是你的用户名';
$mail->FromName='邮件标题';
$mail->MsgHTML('邮件正文,由于前面设置过是HTML,所以注意用HTML写');
$mail->AddAddress('18368493790@163.com');
if($mail->Send()){
echo '发送成功';
}else{
echo '发送失败';
}
之后只要调用index.php就可以了。