很多时候,我们都需要发送邮件给我们的会员,比如注册激活、活动推送等等。
在PHP中实现邮件发送的方法有很多,比如比较新的Swift Mailer 、还有PHPMailer等。在这主要介绍一下PHPMailer这一个邮件发送类。
下载
PHPMailer的GitHub地址:https://github.com/PHPMailer/PHPMailer
实现
代码如下
<?php
//引入类文件
require_once 'PHPMailerAutoload.php';
//实例化类
$mail = new PHPMailer();
//是否开始debug模式
$mail->SMTPDebug = 1; //这里的数字表示提示错误的的类型
//使用STMP服务
$mail->isSMTP();
//声明发送者邮箱SMTP服务器地址
$mail->Host = 'smtp.163.com'; //这个是163邮箱SMTP服务器地址
//开启SMTP认证
$mail->SMTPAuth = true;
//发送邮箱帐号
$mail->Username = 'admin';
//发送邮箱密码
$mail->Password = 'admin'; //注意这个密码可能不是平时登入时所用的密码,一般邮箱服务商为提供一个授权码,使用时填写这个授权码
//加密协议
$mail->STMPSecure = 'SSL';
//端口号
$mail->Port = 25;
//发送者邮箱和昵称
$mail->setFrom('from@163.com','Admin');
//接受者邮箱和昵称
$mail->addAddress('to@163.com','Customer');
//是否开启HTML格式
$mail->isHTML(true);
//设置邮件的字符编码,不然中文乱码
$mail->CharSet='UTF-8';
//邮件主题
$mail->Subject = 'subject';
//邮件内容
$mail->Body = 'body';
//邮件替代内容
$mail->AltBody = 'altbody'; //当邮件不支持html时备用显示,可以省略
//邮件附件
$mail->addAttachment('load.zip');
if(!$mail->send()){
echo 'Message could not be sent';
echo 'Mail Error:'.$mail->ErrorInfo;
}else{
echo 'Message has been sent';
}
博主亲测有效,大家可以看着代码一步一步进行学习
这里我指出几个问题
- 类文件的引入
大家从git上下载或者使用composer下载后,得到一大堆文件,只需要引入PHPMailerAutoload.php
这个文件即可。 - SMTP服务器地址和端口号
一般需要我们在邮箱设置里开启SMTP服务。
网易的邮箱如下:
其他的邮箱大家自行百度或者谷歌,在此我不再赘述。