一、首先需要你开启smtp 服务,登录qq邮箱,进入设置 -》 账户

注意: 开启后会生成授权码,一定要记下,两个都记下,登录邮件客户端需要。这里配置邮件发送也需要这个授权码

二、 下载phpmailer,  然后在thinkphp5 目录下的  扩展类库 extend目录下 新建phpmailer目录。。

把你下载的phpmailer里的class.phpmailer.PHP和class.smtp.php文件复制到phpmailer目录下。

注意:thinkphp5的扩展类的定义是,类文件命名为:phpmailer.php而不是class.phpmailer.php。所以要把class.phpmailer.php重命名为phpmailer.php。 另一个不用改。

三、代码实现:

1。 开启openssl扩展

2 。extend下的扩展类库使用的是命名空间必须在phpmailer.php和class.smtp.php最开头加上

namespace phpmailer;

3。在phpmailer.php中的2315行使用到了php的Exception异常类,在thinkphp框架中直接继承,thinkphp找不到Exception所以要修改如下;

4。 在使用phpmailer时,实例化PHPMailer(),需要使用命名空间

use phpmailer\phpmailer;

5。 然后在index模块下新建Mail.php控制器,代码如下

<?php
namespace app\index\controller;
use think\Controller; use phpmailer\phpmailer;
class Mail extends Base
{ function __construct(){
parent::__construct();
}
//qq
public function index(){
$sendmail = ''; //发件人邮箱
$sendmailpswd = ""; //客户端授权密码,而不是邮箱的登录密码!
$send_name = '';// 设置发件人信息,如邮件格式说明中的发件人,
$toemail = '';//定义收件人的邮箱
$to_name = '';//设置收件人信息,如邮件格式说明中的收件人
$mail = new PHPMailer();
$mail->isSMTP();// 使用SMTP服务
$mail->CharSet = "utf8";// 编码格式为utf8,不设置编码的话,中文会出现乱码
$mail->Host = "smtp.qq.com";// 发送方的SMTP服务器地址
$mail->SMTPAuth = true;// 是否使用身份验证
$mail->Username = $sendmail;//// 发送方的
$mail->Password = $sendmailpswd;//客户端授权密码,而不是邮箱的登录密码!
$mail->SMTPSecure = "ssl";// 使用ssl协议方式
$mail->Port = 465;// qq端口465或587)
$mail->setFrom($sendmail,$send_name);// 设置发件人信息,如邮件格式说明中的发件人,
$mail->addAddress($toemail,$to_name);// 设置收件人信息,如邮件格式说明中的收件人,
$mail->addReplyTo($sendmail,$send_name);// 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址
//$mail->addCC("xxx@qq.com");// 设置邮件抄送人,可以只写地址,上述的设置也可以只写地址(这个人也能收到邮件)
//$mail->addBCC("xxx@qq.com");// 设置秘密抄送人(这个人也能收到邮件)
//$mail->addAttachment("bug0.jpg");// 添加附件
$mail->Subject = "这是一个测试邮件";// 邮件标题
$mail->Body = "邮件内容是 <b>您的验证码是:123456</b>,哈哈哈!";// 邮件正文
//$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容,如果不支持Html方式,就会用到这个,基本无用 if(!$mail->send()){// 发送邮件
echo "Message could not be sent.";
echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息
}else{
echo '发送成功';
} } }

thinkphp5 邮件发送(qq邮箱为例)的更多相关文章

  1. zabbix4.2配置邮件+脚本报警:以QQ邮箱为例

    一.邮箱配置:开启smtp服务和授权 开启smtp选项后,系统会生成一个授权,你需要记住这个授权码,后面需要写入配置文件. 二.配置管理mailx: (1)安装mailx:[root@zabbix-s ...

  2. Thinkphp3.2 PHPMailer 发送 QQ邮箱 163邮箱

    在进入正题这前先看下网易(163)邮箱的服务器地址和端口号 类型 服务器名称 服务器地址 SSL协议端口号 非SSL协议端口号 收件服务器 POP pop.163.com 995 110 收件服务器 ...

  3. C# WinForm 使用SMTP协议发送QQ邮箱验证码

    文章来自:https://blog.csdn.net/IT_xiao_guang_guang/article/details/104336604 前言   在程序设计中,发送验证码是常见的一个功能,用 ...

  4. -_-#【邮件】qq邮箱不显示图片

    干货分享之邮件营销QQ邮箱IP白名单服务申请

  5. Python3+smtplib+poplib+imaplib实现发送和收取邮件(以qq邮箱为例)

    一.说明 1.1 程序说明 (1)smtp是邮件发送协议:pop和imap都是邮件接收协议,两者的区别通常的说法是imap的操作会同步到邮箱服务器而pop不会,表现上我也不是很清楚 (2)本程序实现使 ...

  6. java邮件发送 qq与163邮箱互发和qq和163邮箱发送其他邮箱实例

    研究了近一天的时间,通过查阅相关资料,终于对java发送邮件的机制,原理有了一点点的理解,希望能够帮到大家! 1.首先要向你的项目里导入1个jar包:mail-1.4.4.jar即可(实现qq和163 ...

  7. php 发送QQ邮箱邮件

    这是我的源码比较简陋 https://www.lanzous.com/i2l7h8f 感谢 https://www.cnblogs.com/woider/p/6980456.html 下载phpmai ...

  8. springboot整合邮件发送(163邮箱发送为例)

    先登录163邮箱获取授权  勾选后安装提示会叫你设置授权密码之类的:记住授权的密码 1.引入maven依赖 <dependency> <groupId>org.springfr ...

  9. Python编写邮件群发(qq邮箱)

    #电子邮件操作 import poplib import smtplib from email.header import decode_header from email.mime.text imp ...

随机推荐

  1. USB 驱动之 usb_register 函数解析

    前段时间在kernel 添加了 USB to LAN 模块 AX88772B 的驱动. 根据相关添加解析一下 usb_register_driver 函数 drivers/net/usb/asix.c ...

  2. kubernetes daahboard权限限制

    dashboard在多人使用的时候经常遇到误操作的情况,为了对dashboard进行限制,对dashboard进行了权限控制, 这里主要限制只允许pod被删除.1:创建对应权限的ClusterRole ...

  3. JVM监控添加参数

    -Dcom.sun.management.jmxremote.port                           远程主机端口号的-Dcom.sun.management.jmxremote ...

  4. d3js把circle和rect连接在一起

    怎么办呢...哎...突然就必须全选中了.... 但是...一不小心想到 在g里面都添加circle和rect 但是根据tpye可以让circle的r为0或者rect的width和height为0,这 ...

  5. Workerman

    What is it Workerman is a library for event-driven programming in PHP. It has a huge number of featu ...

  6. java web中读取properties文件时的路径问题

    在web开发时,难免会有一些固定的参数,我们一般把这些固定的参数存在properties文件中,然后用的时候要读出来.但经常出现一些错误,找不到相应的路径,所以,今天特地讲一些如何正确获得路径. 首先 ...

  7. 在使用R做数据挖掘时,最常用的数据结构莫过于dataframe了,下面列出几种常见的dataframe的操作方法

    原网址 http://blog.sina.com.cn/s/blog_6bb07f83010152z0.html 在使用R做数据挖掘时,最常用的数据结构莫过于dataframe了,下面列出几种常见的d ...

  8. HBase的rowkey设计(含实例)

    转自:http://www.aboutyun.com/thread-7119-1-1.html 对于任何系统的数据设计,我们都想提高性能,达到资源最大化利用,那么对于hbase我们产生如下问题: 1. ...

  9. ROS 教程之 network:多台计算机之间网络通信(2)

    在上一篇文章中我们已经搭建好了两台计算机间通信的条件,但是每次都需要在新的终端里输入一长串export ROS_MASTER_URI之类的.实际弄起来的时候也不方便,因此在本文中,我们更进一步,简化两 ...

  10. 用 #include <filename.h> 格式来引用标准库的头文件

    用 #include <filename.h> 格式来引用标准库的头文件(编译器将从 标准库目录开始搜索). #include <iostream> /* run this p ...