CI(CodeIgniter)框架下使用非自带类库实现邮件发送
在项目开发过程中,需要到了邮件提醒功能。首先想到的是CI自身带不带邮件发送类,查看帖子,发现CI本身自带,然后试着利用CI自身带的类库来实现,经过搜搜很多帖子,不少开发者反馈CI自身的Email类有问题,也有同僚给出解决方案,但是在我实际过程中并没有后解决。想到之前自己在使用TP3.2开发项目也做过邮件发送功能,就搬了之前的引用类库,应用的了CI里。下面详细介绍步骤。、
一、下载类库并放入CI扩展目录中
链接:https://pan.baidu.com/s/1yDSU-JIzwHc00Lwxf9_f9w 密码:olge //百度云下载地址
下载完成之后,把两个文件放入/system/libraries目录下。我这里把class.phpmailer.php文件命名成为Pemail.php
然后编辑Pemail.php文件。
<?php
//这里我是参考CI扩展目录下的其它文件,也定义了常量,直接复制搬过来
defined('BASEPATH') OR exit('No direct script access allowed');
if (version_compare(PHP_VERSION, '5.0.0', '<') ) exit("Sorry, this version of PHPMailer will only run on PHP version 5 or greater!\n");
class CI_Pemail { //把类名重命名,并前面加CI_
二、简单使用方法(代码)
public function SendMail() {
$this->load->library('pemail'); //加载CI的email类
$this->pemail->IsSMTP(); // 设置使用SMTP服务器发送Email
$this->pemail->SMTPSecure = 'ssl'; // 使用安全协议
$this->pemail->CharSet ='UTF-8'; // 设置邮件的字符编码,若不指定,则为'UTF-8'。这里或者设置GBK
$this->pemail->SMTPDebug = 1; // 关闭SMTP调试功能 1 = errors and messages 2 = messages only
$this->pemail->Host='smtp.qq.com'; // 设置SMTP服务器。
$this->pemail->Port = 465; // SMTP服务器的端口号
$this->pemail->SMTPAuth=true; // 设置为"需要验证"
$this->pemail->Username='645631686@qq.com'; //设置用户名
$this->pemail->Password='vaxvhieq*******'; //设置授权码
$this->pemail->AddAddress( '2*******@qq.com'); // 添加收件人地址,可以多次使用来添加多个收件人
$this->pemail->AddAddress( '5******@qq.com'); // 添加收件人地址,可以多次使用来添加多个收件人
$this->pemail->FromName ='phper'; // 设置发件人名字
$this->pemail->From ='645631686@qq.com'; // 设置邮件头的From字段。
$this->pemail->Subject ='PHP是世界上最美的语言'; // 设置邮件标题
$this->pemail->Body ='这话没毛病~'; // 设置邮件正文
return $this->pemail->Send(); // 发送邮件。
}
补充:关于设置QQ邮箱开启和调试过程中的一些BUG,可以从百度搜到解决方案。或者问我就帮你解决
分类:
PHP之CI框架
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2017-05-17 B2B2C商品模块数据库设计
2017-05-17 PHP开发中多种方案实现高并发下的抢购、秒杀功能
2017-05-17 Linux CentOs集群LVS+Keepalived负载均衡的实现
2017-05-17 Mysql根据指定字段的int值查出在当前列表的排名
2017-05-17 CentOs下 SVN版本控制的安装(包括yum与非yum)
2017-05-17 Mysql基准测试详细解说(根据慕课网:《打造扛得住Mysql数据库架构》视频课程实时笔录)
2017-05-17 Laravel框架中Form表单Get请求搜索(在此感谢[https://simon8.com])