TP5+PHPMailer 实现发送邮件功能

简介: 使用QQ邮箱或者163网易邮箱或者126邮箱,这里以qq邮箱为例来进行介绍。

准备工作

使用QQ邮箱或者163网易邮箱或者126邮箱,这里以qq邮箱为例来进行介绍。


分为三步:1.如果是本机需要开放端口25,如果是服务器的话需要添加一个465端口;


                 2.打开邮箱,需要开启邮箱的SMTP服务,开启之后返回一个授权验证码,后面要用


                 3.下载PHPMailer资源放在TP5框架的vendor目录下。


                 4.代码编写


一、PHPMailer是什么?

phpMailer 是一个非常强大的php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、html网页,上传附件,并且使用起来非常方便。


二、使用步骤


1.查看本机是否开放25端口

如果没有启动,可以使用cmd命令行开启,也可以在计算机->管理->服务中找到smtp服务,然后点击启动。


2.打开邮箱启动邮箱的SMTP服务

QQ邮箱->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,点击开启。

2820593d4fe7400e8f0c6561d59dccec.png

需要注意的是授权码在后续步骤中会用到。


3.下载PHPMailer资源

(1)phpmailer 安装或者下载方式:


从 github 上下载:  GitHub - PHPMailer/PHPMailer: The classic email sending library for PHP

(2)使用 composer 安装:


在打开的composer命令行界面输入


composer require phpmailer/phpmailer


(3)也可以通过我的资源链接:


点击下载资源


(4)下载完成后可以在TP5框架目录中看到这样一个文件


6768ce43c71a48e993c0756a33081c80.png

4.代码编写


(1)创建目录所需文件


主要思想是在主页index.html页面设置一个a链接来进行跳转进入email.html页面,在表单中输入发送人和发送验证内容,最后发送成功时页面提示200,页面失败时发送400;

e64832f7c0ef4169b3c48dd1be329039.png


(2)在index.html页面body中写入


bcf8526b3256497a8db9e4009dd8f0f4.png


(3)在index.php文件中创建一个类并写入一个函数叫target和emails



namespace app\index\controller; //引入命名空间


use think\Controller; //继承父类


use app\Common;//引入公共类


class Index extends Controller


{


   public function target(){        //跳转email.html页面


       return $this->fetch('email');


   }


  public function emails (){


       $em = new Common();


       $email = input('e_email');


       $code = input('e_content');


       echo $email;


       echo $code;


      return $em->send_code_to_email($email, $code);


   }


}


(4)在common.php公共配置文件中写入



// 应用公共文件


namespace app;


class Common


{


   public function send_code_to_email($email , $code)


   {


       //        echo 'send_code_to_email';


       //        vendor('PHPMailer.class#PHPMailer');


       vendor('PHPMailer.PHPMailerAutoload'); // 引入


    $toemail = $email;


       $mail = new \PHPMailer(); // 新建


       $mail->isSMTP(); //  开启SMTP


       $mail->CharSet = 'utf8'; // 设置编码


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


       $mail->SMTPAuth = true; // smtp需要鉴权 这个必须是true


       $mail->Username = 'xxx@qq.com'; // 发信人的账号


       $mail->Password = "开启邮箱STMP服务时生成的授权码"; // 密码,非邮箱密码,是SMTP生成的密码


       $mail->From = 'xxx@qq.com'; // 发信人的地址


       $mail->SMTPSecure = 'ssl'; // 采用ssl协议


       $mail->Port = 465; // 端口号


       $mail->FromName = "发件人"; // 发件人昵称


     $mail->addAddress($toemail); // 收信人地址


       $mail->addReplyTo('xxx@qq.com'); //回复的时候回复的邮箱,建议和发信人一样


       $mail->Subject = "验证码"; // 邮件主题


      $mail->Body = "您的验证码是:  " . $code . "   有效期为1分钟,本邮件请勿回复!"; // 邮件内容

       if (!$mail->send()) {


           return 400;


       } else {


return 200;

       }


   }


}


目录
相关文章
|
网络协议 安全 网络安全
SMTP邮件服务器原理解析,php发送邮件,swoole发送邮件
简单邮件传输协议 (Simple Mail Transfer Protocol 简称 SMTP) 是一个相对简单的基于文本的协议。 在发送方(客户端)和接收方(服务器)间创建TCP连接之后 那么接下来就是一个合法的SMTP会话了。(SMTP会话的本质只是一个普通TCP,只是会话的消息按照规范组装发送) 在下面的对话中,所有客户端发送的都以C:作为前缀,所有服务器发送的都以S:作为前缀。
217 0
SMTP邮件服务器原理解析,php发送邮件,swoole发送邮件
|
PHP 数据安全/隐私保护
phpmailer/phpmailer 邮件发送,163SMTP设置
phpmailer/phpmailer 邮件发送,163SMTP设置
201 0
|
PHP
php利用smtp类轻松的发送电子邮件
当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你! php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题。本博客后台,当博主回复留言时候,会自动给网友发一封有新回复提示的邮件也是用的本文这个方法实现的。 smtp类发送邮件的方法其实很简单,也很稳定,类是别人已经写好的了,你只需要调用就行了。几行简单的配置就能发邮件,是不是很期待的试一试呢!
326 0
|
网络安全 PHP 数据安全/隐私保护
PHPMailer发送邮件
PHPMailer是一个用于发送电子邮件的PHP类库,可以应用在激活邮件、找回密码等场景。本博文只要把PHPMailer结合到Tp框架。
9587 0
|
测试技术 PHP Apache
PHPMailer安装及简单实例(PHP发送邮件不用Smtp类)
PHPMailer安装及简单实例 [ 2006-11-29 14:37:49 | Author: songzi ] Font Size: Large | Medium | Small PHPMailer是一个用PHP写的用于邮件发送的类,有点像Jmail,相信很多新手和我一样,开始很茫然,不知道怎么安装,查找了一下,发现这方面的资料真的少之又少,一个文章被转载千百次,一搜索全是同一个内容,真不知道说什么好,其实打开安装里的readme就一目了然了,闲话少说,安装其实很简单。
1723 0