PHPMailer的使用
1、需要php扩展 sockets,openssl
- sockets 在php的配置php.ini中去除extension=php_sockets.dll这一行的注释,然后重启服务器
- openssl 该扩展PHP默认打开
- 注:PHP扩展下载的地址 http://pecl.php.net/
2、在github上下载PHPMail类
- 下载地址:https://github.com/PHPMailer/PHPMailer/
- 依次点击:[Clone or download] => [Download ZIP]
3、邮箱授权码的获取 地址:https://jingyan.baidu.com/article/6d704a133a245f28db51caf5.html
- 打开自己的qq邮箱 => 点击 [设置] 按钮 => 选择 [账户] =>
- 往下拉 找到 [POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务] =>
- 选择 POP3/SMTP服务 或者 IMAP/SMTP服务 => 点击 [开启] =>
- 验证密保 用绑定qq的手机号码 发送内容[配置邮件客户端] 到 [1069070069] =>
- 发送成功的话 点击 [我已发送] => 获取到[邮箱授权码]
4、把下载好的PHPMailer放到自己的PHP项目中:
- 我使用的是yaf框架,我把下载好的 Exception.php,OAuth.php,PHPMailer.php,POP3.php,SMTP.php放在 \library\PHPMailer\PHPMailer 目录下
5、PHP代码
<?php
use PHPMailer\PHPMailer\PHPMailer;
class TestController extends Rest{
public function sendAction(){
// 引入PHPMailer的核心文件
//require_once("PHPMailer/class.phpmailer.php");
//require_once("PHPMailer/class.smtp.php");
// 实例化PHPMailer核心类
$mail = new PHPMailer(); //不需要引入文件,直接使用yaf的自动加载机制加载目录 \library\PHPMailer\PHPMailer 下的所有 php 文件
// 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1;
// 使用smtp鉴权方式发送邮件
$mail->isSMTP();
// smtp需要鉴权 这个必须是true
$mail->SMTPAuth = true;
// 链接qq域名邮箱的服务器地址
$mail->Host = 'smtp.qq.com';
// 设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';
// 设置ssl连接smtp服务器的远程服务器端口号
$mail->Port = 465;
// 设置发送的邮件的编码
$mail->CharSet = 'UTF-8';
// 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
$mail->FromName = 'abcdefg';
// smtp登录的账号 QQ邮箱即可
$mail->Username = '发送的qq号@qq.com';
// smtp登录的密码 使用生成的授权码
$mail->Password = 'SMTP授权码';
// 设置发件人邮箱地址 同登录账号
$mail->From = '发送的qq号@qq.com';
// 邮件正文是否为html编码 注意此处是一个方法
$mail->isHTML(true); //html
// 设置收件人邮箱地址
$mail->addAddress('接收的qq号@qq.com');
// 添加多个收件人 则多次调用方法即可
$mail->addAddress('接收的qq号@qq.com');
// 添加该邮件的主题
$mail->Subject = '标题是什么';
// 添加邮件正文
$mail->Body = '<h1>Hello World</h1><a style="color:blue" href="https://jingyan.baidu.com/article/6d704a133a245f28db51caf5.html">点击</a>';
// 为该邮件添加附件
$mail->addAttachment( './aaa.txt' );
// 发送邮件 返回状态
if($mail->send()){
echo 'Success';
}else{
echo 'Error';
}
}
}
6、注意:其他的没什么,这里就是要引入PHPMailer.php文件。
- 使用require_once()引入,还是使用php的框架自动加载,看哪种方便用哪种吧。