php实现邮箱发送功能tp5框架
网站开发中经常用到邮件发送功能,比如发送验证码、修改密码或者推送最新消息等等,由于他是免费使用的功能,所以在网站中经常遇到。这结课我们就给大家介绍下TP5如何发送邮件。
邮件可以利用php的smtp类来发邮件,大家可以尝试下,但是在tp5中建议大家用phpmailer来实现邮件发送。实现方式如下:
1、下载phpmailer
Tp5可以利用composer下载或者直接下载安装包,这里直接将安装包给大家!
下载地址:https://pan.baidu.com/s/1HPUJFTyPlg4a7TK7YWySOg
2、将phpmailer解压好后直接放到extend中
3、在application中新建一个公用的控制器,然后创建一个sendmail类文件:代码如下
<?php namespace app\index\controller; use think\Controller; use think\Exception; use think\Loader; class SendEmail extends Controller { /** * 发送邮件 * @param $host [SMTP地址] * @param $send_email [发送邮箱账号] * @param $pwd [发送邮箱密码] * @param $to [接收邮箱账号] * @param $title [邮件标题] * @param $content [邮件内容] * @param $file [邮件附件] * @return bool * @throws \Exception */ public function sendMail( $to, $title, $content){ //实例化PHPMailer核心类 Loader::import('PHPMailer.src.PHPMailer',EXTEND_PATH,'.php'); Loader::import('PHPMailer.src.SMTP',EXTEND_PATH,'.php'); $mail = new \PHPMailer(); //是否启用smtp的debug进行调试 开发环境建议开启默认为关闭 $mail->SMTPDebug = 2; //使用smtp鉴权方式发送邮件 $mail->isSMTP(); //smtp需要鉴权 这个必须是true $mail->SMTPAuth=true; //SMTP地址 $mail->Host = 'smtp.163.com'; //设置使用ssl加密方式登录鉴权 $mail->SMTPSecure = 'ssl'; //设置ssl连接smtp服务器的远程服务器端口号 $mail->Port = 465; // $mail->Helo = 'Hello smtp.qq.com Server'; //发件人的主机域默认为localhost 内容任意,建议使用您的域名 //$mail->Hostname = 'localhost'; //设置发送的邮件的编码 $mail->CharSet = 'UTF-8'; //设置发件人姓名 任意内容 $mail->FromName = '英特网络'; //smtp登录的账号 这里填入字符串格式邮箱账号的即可 $mail->Username = "intewl@163.com"; //smtp登录的密码 (部分邮箱为授权码) $mail->Password = ""; //设置发件人邮箱地址 $mail->From = "intewl@163.com"; //邮件正文是否为html编码 $mail->isHTML(true); //收件人邮箱地址 参数一为邮箱地址 参数二为给该地址设置的昵称 $mail->addAddress($to,'英特网络');//重复调用可添加多个收件人 //邮件标题 $mail->Subject = $title; //邮件正文 若isHTML设置为true,则可是完整的html字符串 (可用file_get_contents函数读取本地的html文件) $mail->Body = $content; //添加附件 参数一为附件存放的目录 参数二为在邮件附件名称 try{ //发送邮件 $status = $mail->send(); } catch (Exception $e){ echo $e->getMessage(); } //返回结果 return $status?true:false; } }
在其他需要用到发送邮件的地方使用,使用方法先创建类,然后调用sendMail函数
public function sendMail(){ $mail=new SendEmail(); $res=$mail->sendMail( 'zykczm@qq.com', "英特网络", "您的验证码是"); dump($res); }
注意事项:
1、邮件发送功能首先需要发送邮箱的账号开通pop3/smtp或者imap/smtp功能。
2、sendMail中邮箱账号密码等可以自行提取到函数参数中,以便后台对参数进行管理
3、最后使用sendMail函数是,$title和$content的内容用较真实内容替换,在测试中,将$title写成‘111’,$content写成‘1111’,会出现554错误,发生原因内容太简单有些邮箱判断是垃圾内容。
4、Smtp服务器远程端口号不同邮箱不同端口,可以百度搜下
915浏览量 · 2评论 · 2018-11-12 10:23:00
热门专题
-
01
前端 / HTML超文本标记语言,标准通用标记语言下的一个应用。 “超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分
13 篇文章
-
02
前端 / JS/JQjQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。
31 篇文章
-
03
前端 / CSS层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
15 篇文章
-
04
前端 / VUE Vue是一套构建用户界面的渐进式框架。 Vue只关注视图层,采用自底向上增量开发的设计。
41 篇文章
-
05
设计 / PhotoshopPhotoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。
0 篇文章
-
06
后端 / PHPPHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言
0 篇文章
-
07
设计 / aihtml是超文本标记语言
0 篇文章
-
08
后端 / ThinkPhpThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。遵循Apache2开源协议发布。简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。
5 篇文章
-
09
前端 / 微信小程序微信小程序,简称小程序,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
3 篇文章
-
10
办公 / WordWord 提供了许多易于使用的文档创建工具,同时也提供了丰富的功能集供创建复杂的文档使用。
2 篇文章
全部评论 2
intewl2019-10-11 15:31:21
很好,终于可以用邮箱来注册账号了!
zykczm2019-10-11 15:34:20
ok,很不错,谢谢分享。