标题 前言介绍
1.邮件分为发送、接收两部分:
发送邮件:执行smtp协议
接收邮件:执行pop3协议
2.图解
①小黑要把邮件发送给自己的中转邮件服务器,即sohu的邮件服务器,走smtp协议
②sohu邮件中转服务器再把该信件邮递到接收方的邮件服务器(即163邮件服务器)里边
③接收人利用浏览器或其他终端软件从自己的s163邮件服务器获得发给自己的邮件,走pop3协议
3.PHPmailer实现邮件发送
1.在php中发送邮件我们有一个功能包,名字为phpmailer,该功能包是对邮件底层协议有很好的封装,使得发送邮件非常方便。
2.现在在thinkphp5(其他框架也一样)框架中,要通过composer方式把该功能包给做引入使用。
4.composer安装项目扩展
安装网址:https://packagist.org/?query=yuan1994%2Ftp-mailer
粘贴到项目文件的cmd窗口下进行下载
下载完成后存储位置如下
5.配置文件
官网配置如下
以下是主体代码 复制即可 复制位置application/config.php
return [
'driver' => 'smtp', // 邮件驱动, 支持 smtp|sendmail|mail 三种驱动
'host' => 'smtp.qq.com', // SMTP服务器地址
'port' => 465, // SMTP服务器端口号,一般为25
'addr' => '', // 发件邮箱地址
'pass' => '', // 发件邮箱密码
'name' => '', // 发件邮箱名称
'content_type' => 'text/html', // 默认文本内容 text/html|text/plain
'charset' => 'utf-8', // 默认字符集
'security' => 'ssl', // 加密方式 null|ssl|tls, QQ邮箱必须使用ssl
'sendmail' => '/usr/sbin/sendmail -bs', // 不适用 sendmail 驱动不需要配置
'debug' => true, // 开启debug模式会直接抛出异常, 记录邮件发送日志
'left_delimiter' => '{', // 模板变量替换左定界符, 可选, 默认为 {
'right_delimiter' => '}', // 模板变量替换右定界符, 可选, 默认为 }
'log_driver' => '', // 日志驱动类, 可选, 如果启用必须实现静态 public static function write($content, $level = 'debug') 方法
'log_path' => '', // 日志路径, 可选, 不配置日志驱动时启用默认日志驱动, 默认路径是 /path/to/tp-mailer/log, 要保证该目录有可写权限, 最好配置自己的日志路径
'embed' => 'embed:', // 邮件中嵌入图片元数据标记
];
6.定义发送邮件的函数
在application/common.php里边为发送邮件定义一个函数:
use mailer\tp5\Mailer; (此命名空间必须引入)
function send_email($to,$title,$content){
$mailer = Mailer::instance();
$mailer->to($to)
->subject($title)
->html($content)
->send();
}
三个参数: $to收件人 $title邮件标题 $content邮箱内容
7.调用函数测试操作
在任意文件下调用此函数
例:
class Demo {
public function demo(){
send_email('xxxx@qq.com','标题','内容');
echo '发送成功';(测试)
}
}
以下必看:
1.自己去 mail.sina.com 官网申请一个邮箱,用作发送邮件:
2.注册完成后需要开启smtp协议,才能发送邮件
完