文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP 使用ThinkPHP实现电子邮件发送示例

2023-09-01 16:19

关注

文章目录


在我们很多的程序中都需要发送邮件去提示用户一些相关信息,应用的范围还是很广的,比如:登录验证需要验证码,后台管理系统中有变更需要发送邮箱提示等,而且邮件的发送相较于短信发送成本更低,是 免费的!!
那么要实现邮件发送需要做以下操作:

找到我们的邮箱设置

我这边使用的是QQ邮箱,每个邮箱基本都差不多
QQ邮箱首页

去账号中找到这一堆服务,找到后开启smtp服务

QQ邮箱设置账号页服务区

开启服务后管理服务

在这里点击就可以获取到授权码啦
QQ邮箱获取stmp授权码获取

直接使用composer安装扩展phpmailer

composer require phpmailer/phpmailer

我把它封装在了application目录下的common.php公共类中,下面是代码:

// 应用公共文件namespace app;class Common{    // 应用公共文件        public function send_code_to_email($email, $code)    {        Vendor('PHPMailer.PHPMailerAutoload');//这里引入一下刚才安装扩展的自动加载类        $mail = new \PHPMailer(); // 实例化类,新建        $mail->isSMTP(); //  开启SMTP        $mail->CharSet = 'utf8'; // 设置编码        $mail->Host = 'smtp.qq.com'; // SMTP服务器        $mail->SMTPAuth = true; // smtp需要鉴权 这个必须是true        $mail->Username = ''; // 发信人的账号,这个需要是开启stmp服务的邮箱号        $mail->Password = ""; // 密码,非邮箱密码,是SMTP生成的密码,也就是授权码        $mail->From = ''; // 发信人的地址        $mail->SMTPSecure = 'ssl'; // 采用ssl协议,这里采用了加密,端口需要进行开放:465或587        $mail->Port = 465; // 端口号        $mail->FromName = ""; // 发件人昵称        $mail->addAddress($email); // 收信人地址        $mail->addReplyTo($email); //回复的时候回复的邮箱,建议和发信人一样        $mail->Subject = ""; // 邮件主题,看自己需求        $mail->Body = $code; // 邮件内容        if (!$mail->send()) {            return json([400, $mail->ErrorInfo]);        } else {            return json([200, '验证码已经发送成功']);        }    }}

我这边是只封装了收件人和邮件内容,看具体业务需求,可以将主题,发件人昵称也封装一下

实际调用

在需要调用的地方进行调用就可以了,当然要先将公共类引入
在需要调用的控制器文件中的命名空间下使用use引入

use app\Common;

调用函数

public function sends(){    $email = input('email');//获取到收件人    $code = input('code');//获取到邮件内容    $send = new Common();//实例化公共类    return $send->send_code_to_email($email, $code);//调用封装好的方法}

效果

我这边直接用网页url调用了一下
调用返回
收到邮件:
收到邮件

总体其实还是比较简单的,需要注意如果不使用ssl安全协议的话端口是25,不过阿里云是强制ssl安全的,所以最好还是使用465端口比较好
到邮箱中授权开启获取授权码->在thinkPHP框架中使用composer安装PHPMailer扩展->封装一下发送邮件方法->在业务中调用即可

希望对大家有所帮助,如果觉得有用的话还请不吝三连
请添加图片描述

来源地址:https://blog.csdn.net/qq_68862343/article/details/132218320

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯