一、首先需要你开启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最开头加上

  1. namespace phpmailer;

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

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

  1. use phpmailer\phpmailer;

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

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

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. 【WPF】当 ItemsSource 正在使用时操作无效。改用 ItemsControl.ItemsSource 访问和修改元素

    问题: 中文版报错:Additional information: 当 ItemsSource 正在使用时操作无效.改用 ItemsControl.ItemsSource 访问和修改元素. 英文版报错 ...

  2. Linux 网络子系统之NAPI书签

    只是一个书签 http://blog.csdn.net/ustc_dylan/article/details/6116334

  3. golang web开发获取get、post、cookie参数

    在成熟的语言java.python.php要获取这些参数应该来讲都非常简单,过较新的语言golang用获取这些个参数还是费了不少劲,特此记录一下. golang版本:1.3.1在贴代码之前如果能先理解 ...

  4. 定制LNMP的RPM包

    自动化部署必备技能—定制化RPM包 回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. ...

  5. Entity Framework应用:Code First模式数据迁移的基本用法

    使用Entity Framework的Code First模式在进行数据迁移的时候会遇到一些问题,熟记一些常用的命令很重要,下面整理出了数据迁移时常用的一些命令. 一.模型设计 EF默认使用id字段作 ...

  6. 百度搜索_Selenium WebDriver 环境搭建和错误调试_chromedriver_win32必须下载否则无法测试chrome

    转自:  http://www.360doc.com/content/14/0821/18/597197_403634783.shtml zTree 东西不多,我也一直使用着原始的人工测试手段,随着内 ...

  7. Windows 中 .\ 和 ..\ 的区别

    .\ 表示项目文件所在目录之下的目录...\ 表示项目文件所在目录向上一级目录下的目录...\..\表示项目文件所在目录向上二级目录之下的目录.

  8. e653. 写入段落文本

    In order to change the font of the text, you need to supply an attributed string to the LineBreakMea ...

  9. php -- PHP在linux上执行外部命令,system(),exec(),shell_exec()

    目录:一.PHP中调用外部命令介绍二.关于安全问题三.关于超时问题四.关于PHP运行linux环境中命令出现的问题 一.PHP中调用外部命令介绍 在PHP中调用外部命令,有三种方法: 1. 调用专门函 ...

  10. ASP.NET WebApi 路由配置【转】

    一.路由介绍 ASP.NET Web API路由是整个API的入口.我们访问某个资源就是通过路由映射找到对应资源的URL.通过URL来获取资源的. 对于ASP.NET Web API内部实现来讲,我们 ...