php邮件发送tp,Thinkphp5 邮件发送Thinkphp发送邮件

在项目的开发中 用户修改密码,需要发送验证码到用户邮箱,

在common.php公共文件中加入以下代码:

/**

* 系统邮件发送函数

* @param string $tomail 接收邮件者邮箱

* @param string $name 接收邮件者名称

* @param string $subject 邮件主题

* @param string $body 邮件内容

* @param string $attachment 附件列表

* @return boolean

*/

function send_mail($tomail, $name, $subject = '', $body = '', $attachment = null) {

$mail = new PHPMailer\PHPMailer\PHPMailer(); //实例化PHPMailer对象

$mail->CharSet = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码

$mail->IsSMTP(); // 设定使用SMTP服务

$mail->SMTPDebug = 0; // SMTP调试功能 0=关闭 1 = 错误和消息 2 = 消息

$mail->SMTPAuth = true; // 启用 SMTP 验证功能

$mail->SMTPSecure = 'ssl'; // 使用安全协议

$mail->Host = "smtp.qq.com"; // SMTP 服务器

$mail->Port = 465; // SMTP服务器的端口号

$mail->Username = "xxxxxx@qq.com"; // SMTP服务器用户名

$mail->Password = "xxxxxx"; // SMTP服务器密码

$mail->SetFrom('xxxx@qq.com', '发送人的名称');

$replyEmail = ''; //留空则为发件人EMAIL

$replyName = ''; //回复名称(留空则为发件人名称)

$mail->AddReplyTo($replyEmail, $replyName);

$mail->Subject = $subject;

$mail->MsgHTML($body);

$mail->AddAddress($tomail, $name);

if (is_array($attachment)) { // 添加附件

foreach ($attachment as $file) {

is_file($file) && $mail->AddAttachment($file);

}

}

return $mail->Send();

}

控制器:

public function email(){

//收件人的邮箱

$toemail='xxxxx@qq.com';

//收件人的名称

$name='xxxxxxx';

$subject='QQ邮件发送测试';

$code = mt_rand(10000, 99999);

session("code",$code);

$content='你得验证码为'.$code;

dump(send_mail($toemail,$name,$subject,$content));

}

最后验证是否正确 根据输入验证码的去判断取出session的 code的进行比较

TP5实现邮件发送(二)使用 composer 命令进行安装或下载源代码使用。

composer require houdunwang/mail

邮件配置,以下是126邮箱配置的示例:

return [

'ssl' => false,//服务器使用ssl

'username' => 'houdunwang@126.com',//邮箱帐号

'password' => '',//登录密码

'host' => 'smtp.126.com',//服务器主机

'port' => '25',//服务器端口号

'fromname' => '后盾网',//发件人(会员收到邮件时显示)

'frommail' => 'houdunwang@126.com',//发件人邮箱(会员收到邮件时显示)

];

发送邮件

函数语法

Mail::send(收件人邮箱,收件人名称,邮件标题,邮件内容);

发送邮件

Mail::send(

'xxx@qq.com',

'xxx@qq.com',

"这是邮件标题",

"这是邮件正文"

);

使用闭包设置内容

Mail::send('test@xx.com', 'test@xx.com', "这是邮件标题", function () { return View::instance()->with(['title' => '测试邮件发送成功', 'content' => '这是邮件内容'])->fetch('resource/view/email.html'); });

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库面试题目经典大全

1、事务 事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。例如,网上购物的交易过程至少包括以下几个步骤的操作&…

物联网离风口还差最关键一环?

物联网智能时代所带来的不仅仅是物物相联的机会,更是会彻底改变用户和企业之间的关系。用户和硬件、用户和服务之间会更紧密联结在一起。众多业内人士纷纷表示,万物互联的前景虽然美好,但缺乏标准已经成为阻碍产业发展的最大瓶颈。 现阶段痛点…

python创建不可变集合_python不可变集合是什么

在很多的其他语言中在传递参数的时候允许程序员选择值传递还是引用传递(比如c语言加上*号传递指针就是引用传递,而直接传递变量名就是值传递),而python只允许使用引用传递,但是它加上了可变类型和不可变类型,让我们感觉有点混乱了…

前端大屏模板分享-可在线浏览

1. 前言站长以前介绍过这个开源项目,最近又有人在问,索性挂在Dotnet9网站上,方便大家在线浏览,先声明,模板来自下面的仓库:仓库名:大屏数据展示模板作者:lvyeyou开源协议&#xff1a…

linux shell之awk

1 awk awk 是一款设计用于数据流的工具, awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处 awk 脚本的结构基本如下所示: awk BEGIN{print "start" } pattern { commands } END{ print "end" } file awk 脚本通常由3部分组成…

微软的最高市值是多少?

有人说微软1999 年 12 一个月股价达到历史新高 $58.38不准确。我1999年12月22可能会增加微软。公司按照1999年12月27最新价格格(119.125,股票分割后成为59.5625)他给了我一个选项。价格格,微软股价史无前例的成为了最高点&#xf…

使用Scala实现Java项目的单词计数:串行及Actor版本

其实我想找一门“具有Python的简洁写法和融合Java平台的优势, 同时又足够有挑战性和灵活性”的编程语言。 Scala 就是一个不错的选择。 Scala 有很多语言特性, 建议先掌握基础常用的: 变量、控制结构 、正则与模式匹配、集合、文件读写/目录遍…

vnc oracle solaris,在Solaris下安装VNC 远程安装Oracle

最近在折腾oracle ebs的安装 ,用xmanager连接solairs10的过程中,总是连接3个小时左右就挂掉,很郁闷!本文参考eygle的文章1;首先从 eygle提供的网址上下载vnc软件下载得到的文件如下 vnc-3.3.4-solaris_2.5.tar.tar然…

sql CHECK ,UNIQUE 约束(mysql)

check 用来限定值的范围,如下表: CREATE TABLE test22 ( age INT(10), sex VARCHAR(10), name11 VARCHAR(10) NOT NULL, CHECK (age>0) ) 在此,check限制了age的值为0以上 如果想让age的的不唯一呢?那就使用UNIQUE了&…

html+css常用小笔记(持续更新)

1去掉input点击时的蓝色边框outline:none; 2禁止文本选中-webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Chrome/Safari/Opera */ -khtml-user-select: none; /* Konqueror */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /…

音视频基本概念和FFmpeg的简单入门

写在前面最近正好有音视频编辑的需求,虽然之前粗略的了解过FFmpeg不过肯定是不够用的,借此重新学习下;基本概念容器/文件(Conainer/File):即特定格式的多媒体文件,一般来说一个视频文件是由视频,音频&#…

linux shell之paste合并文件和找到匹配的文件里面替换内容(find和-exec或xargs组合)

1 问题 1)合并2个文件,这里用paste命令 2)找到匹配的文件里面替换内容,这里用find 和 -exec或xargs命令组合 2 实现 1)合并2个文件,这里用paste命令,我们在paste后面加参数-d 然后加" &…

Windows Live Writer 的昨日荣光

今天这一篇文章,想写一写Windows Live Writer这款博客编辑器(最早的一个版本是2007年发布的)。毫不夸张地说,这是为数不多的几款所见即所得的编辑器之一,当然,它的运行速度慢也是一个众所周知的问题。作为一…

qpython执行手机脚本精灵使用教程_Android上执行python脚本-QPython

看书,发现android可以跑python。尝试了一下。首先需要在手机上安装python环境,通过安装apk实现,这个apk叫QPython,还有同类的比如SL4A。QPython的官网:https://www.qpython.com/可以在官网上下载QPython的安装包&#…

猎豹MFC--CMenu菜单 设置主菜单 给主对话框设置菜单 设置快捷菜单

设置主菜单(不是快捷菜单):给主对话框设置菜单:效果如下:修改菜单的ID使之便于记忆:给菜单添加消息处理:添加处理代码:设置快捷菜单:打开对话框,属性添加消息…

SQL主键简单表述

主键(PRIMARY KEY 约束):PRIMARY KEY 约束唯一标识数据库表中的每条记录。 主键就是唯一的,其是索引的一种,并且是唯一性索引的一种。 其实主键就像我们的身份证一样,每一个主键的id就表示着一个特定的一…

oracle 删除空间不足,oracle表空间扩容、创建、删除(解决表空间不足问题)

前言整理一下之前使用oracle数据库遇到的表空间不足的问题,顺便水个博客。oracle表空间操作语句1.改变已存在的数据文件的大小ALTER TABLESPACE app_data ADD DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF‘ SIZE 20480M;2.允许已存在的数据文件…

重复数据删除:块级技术VS.字节级技术

重复数据删除技术能够识别重复的数据,消除冗余,减少需转移或存储的数据的总体容量。在本文中,我将分别对这两种技术加以评论。与块级技术相比,字节级删除技术对数据的检查更加细微,精度更高,但同时需要更加…

Mac升级到Yosemite后默认的php版本不支持imagetfftext函数问题解决

Mac升级到yosemite后,php也自动升级,运行项目的时候发现后台验证码显示不出来。调试一下发现imagetfftext这个函数不存在,应该gd没有安装完全,因为Mac上的php实现系统自带的,只能通过重新安装php来解决【不能通过安装扩…

linux shell之字符串的更具字符分割和删除字符和文本内容的删除以及内容是否匹配成功

1 字符串的更具字符分割 1) xargs分割 echo "chenyu*hello*word" | xargs -d "*" chenyu hello word 2) awk分割 echo "chenyu*hello*word" | awk -F "*" {print $1} chenyu 2 字符串的删除字符 1&#xf…