tp5中php正则怎么写,详解tp5中phpmailer的使用
网站一般都具备一个功能,就是邮箱提醒功能;比如收到反馈信息来一条邮箱提醒,网站有了信息留言了来一条邮箱提醒等等。这时候我们就要用到phpmailer这个插件了。
插件可以到git下载 https://github.com/PHPMailer/PHPMailer
下载下来后得到一个压缩包,我们只要里面两个文件,对的只要两个。把压缩包里边src目录的 PHPMailer.php 和 SMTP.php 提取出来。把它丢进tp5扩展extend中。
丢进去后就不用管了,接着下一步写一个发送邮件的方法。
为方便全站调用phpmailer,我们可以把方法写在common.php公用文件中<?php
use PHPMailer\PHPMailer;
/**
* @desc 发送普通邮件
* @param $title 邮件标题
* @param $Address 收件人邮箱
* @param $body 邮件正文
* @return bool|string 返回是否发送成功
*/
function SendEmail($title, $Address, $body){
$mail = new PHPMailer();//实例化
$mail->IsSMTP();// 启用SMTP
$mail->Host = "smtp.qq.com";//SMTP服务器 以qq邮箱为例子 还可以是smtp.163.com 等等其它的smtp服务地址
$mail->Port = 465;//邮件发送端口 一般为465 不需要修改
$mail->SMTPAuth = true;//启用SMTP认证
$mail->SMTPSecure = "ssl";// 设置安全验证方式为ssl
$mail->CharSet = "UTF-8";//字符集
$mail->Encoding = "base64";//编码方式
$mail->Username = "";//你的邮箱(是开启了smtp服务的邮箱,随便写是无效的)
$mail->Password = "";//你的smtp服务密码(是服务密码不是登陆密码,写登陆密码也是无效的)
$mail->From = "";//发件人邮箱地址(这里也填smtp服务邮箱就好)
$mail->FromName = "";//发件人的名字(这个就随便了,什么阿猫阿狗都行) //下面这些不需要修改
$mail->Subject = $title;//邮件标题
$mail->AddAddress($Address);//收件人邮箱
$mail->IsHTML(true);//支持html格式内容
$mail->Body = $body;//邮件主体内容
if ($mail->Send()) {
return true;
}else{
return true; "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息
}
}
把以上该填写的配置好了之后就可以全局调用这个方法发邮箱了
namespace app\index\controller;
use app\common\controller\SysAction;
class Index extends SysAction
{
public function index()
{
$title = '这里是邮箱标题!';
$Address = 'aaa@qq.com';//收件人邮箱
$body = '这是发送邮件的内容,这里是支持html格式的,比如
';
//这里有三个参数,分别是 邮件标题,收件人邮箱,邮件内容
$send = SendEmail($title, $Address, $body);
if($send){
echo "邮箱发送成功";
} else {
echo $send;
};
}
}
只要运行上面方法就可以给指定的人发送邮件了,效果如下(smtp要配置好,不然是没效果的)
微信扫码查看本文
tp5中php正则怎么写,详解tp5中phpmailer的使用相关推荐
- c语言中双冒号意思_详解C++中的双冒号 ::
C++中的双冒号 ::第一种,类作用域,用来标明类的变量.函数 Human::setName(char* name); 第二种,命名空间作用域,用来注明所使用的类.函数属于哪一个命名空间的 std:: ...
- python中break怎么用_详解Python中break语句的用法
详解Python中break语句的用法 在Python中的break语句终止当前循环,继续执行下一个语句,就像C语言中的break一样. break最常见的用途是当一些外部条件被触发,需要从一个循环中 ...
- python中的iloc函数_详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
pandas的DataFrame对象,本质上是二维矩阵,跟常规二维矩阵的差别在于前者额外指定了每一行和每一列的名称.这样内部数据抽取既可以用"行列名称(对应.loc[]方法)",也 ...
- python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)
很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1: 2.例如: 即: ...
- [转载] python中for语句用法_详解Python中for循环的使用_python
参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...
- java中static修饰函数_详解java中static关键词的作用
在java中,static是一个修饰符,用于修饰类的成员方法.类的成员变量,另外可以编写static代码块来优化程序性能:被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载 ...
- c语言中优先级劣后级,详解基金中优先级和劣后级的区别
原标题:详解基金中优先级和劣后级的区别 我们经常看到一些私募基金在投资收益模式上进行创新,将LP分为优先及劣后两个级别.很多朋友都很困惑为何要如此设计.今天,关天资本将为大家详细介绍基金中的优先级和劣 ...
- python中for语句用法_详解Python中for循环的使用_python
这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...
- mysql数据库中count的作用_详解 MySQL中count函数的正确使用方法
1. 描述 在MySQL中,当我们需要获取某张表中的总行数时,一般会选择使用下面的语句 select count(*) from table; 其实count函数中除了*还可以放其他参数,比如常数.主 ...
最新文章
- 【Python-ML】无监督线性降维PCA方法
- UA MATH567 高维统计III 随机矩阵4 欧氏空间上的集网与覆盖
- 机器人演唱邓丽君是真的吗_20年后,高科技让她与邓丽君终相逢
- MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】
- 你相亲成功的几率有多高?机器学习硬核预测
- 外挂学习之路(4)--- 大海捞针找call call const法
- Spark SQL之queryExecution运行流程解析Logical Plan(三)
- css样式引入方式,及常用设置标签样式
- dev gridview 打印列数过多_R语言:如何将多张统计图绘制在一张上面
- 如何用记事本编写运行java程序?
- [深度学习]-基于tensorflow的CNN和RNN-LSTM文本情感分析对比
- vmware cli 修改磁盘为SSD
- 【WebGoat习题解析】Parameter Tampering-Bypass HTML Field Restrictions
- UCI糖尿病数据利用逻辑回归算法进行训练和预测
- Codeforces - Chloe and pleasant prizes
- 190403内置模块
- proteus里面没有stm32怎么办_STM32难不难,如何学习?这几点老司机建议,你得好好收藏!...
- ROS2机器人笔记20-08-02
- Genymotion - 强大好用高性能的 Android 模拟器 (在电脑流畅运行APK安卓软件游戏的利器)
- 使用sass预处理器的优劣
热门文章
- python爬取b站搜索结果播放地址_如何利用Python快速爬取B站全站视频信息
- 启动zookeeper时IDEA启动项目时提示8080端口被占用
- VisualVM提示检测不到本地JAVA程序
- fetch请求报错:
- python读取邮箱邮件_Python读取邮箱邮件
- linux查看jdk详细版本号,Linux中查看jdk版本
- 二叉搜索树的删除操作可以交换吗_一文看懂数据结构中的树
- 万分之二用百分之怎么表示_农村建房时,“砖砌的化粪池”怎么做?听完内行人的分析,明白了...
- python add_argument()用法解析
- layer php弹出层,layer官方演示与讲解(jQuery弹出层插件)