Thinkphp3.23下的发送邮件配置

thinkPHP3.2.3 使用PHPMailer实现发送邮件 thinkPHP3.2.3使用PHPMailer实现发送邮件,内置PHPMailer文件 立即下载

1、下载phpmailer扩展
phpmailer的下载地址:
https://code.google.com/a/apache-extras.org/p/phpmailer
将此扩展放置在ThinkPHP\Library\Vendor\PHPMailer下。
2、在项目中加入如下配置

//邮件配置
'THINK_EMAIL' => array(
    'SMTP_HOST'   => 'smtp.aaa.com', //SMTP服务器
    'SMTP_PORT'   => '465', //SMTP服务器端口
    'SMTP_USER'   => 'mail@aaa.com', //SMTP服务器用户名
    'SMTP_PASS'   => 'password', //SMTP服务器密码
    'FROM_EMAIL'  => 'mail@aaa.com', //发件人EMAIL
    'FROM_NAME'   => 'ThinkPHP', //发件人名称
    'REPLY_EMAIL' => '', //回复EMAIL(留空则为发件人EMAIL)
    'REPLY_NAME'  => '', //回复名称(留空则为发件人名称)
),

3、邮件发送函数

/**
 * 系统邮件发送函数
 * @param string $to    接收邮件者邮箱
 * @param string $name  接收邮件者名称
 * @param string $subject 邮件主题 
 * @param string $body    邮件内容
 * @param string $attachment 附件列表
 * @return boolean 
 */
function think_send_mail($to, $name, $subject = '', $body = '', $attachment = null){
    $config = C('THINK_EMAIL');
    vendor('PHPMailer.class#phpmailer'); //从PHPMailer目录导class.phpmailer.php类文件
    $mail             = new \PHPMailer(); //PHPMailer对象
    $mail->CharSet    = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱 码
    $mail->IsSMTP();  // 设定使用SMTP服务
    $mail->SMTPDebug  = 0;                     // 关闭SMTP调试功能
                                               // 1 = errors and messages
                                               // 2 = messages only
    $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能
    $mail->SMTPSecure = 'ssl';                 // 使用安全协议
    $mail->Host       = $config['SMTP_HOST'];  // SMTP 服务器
    $mail->Port       = $config['SMTP_PORT'];  // SMTP服务器的端口号
    $mail->Username   = $config['SMTP_USER'];  // SMTP服务器用户名
    $mail->Password   = $config['SMTP_PASS'];  // SMTP服务器密码
    $mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
    $replyEmail       = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];
    $replyName        = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];
    $mail->AddReplyTo($replyEmail, $replyName);
    $mail->Subject    = $subject;
    $mail->MsgHTML($body);
    $mail->AddAddress($to, $name);
    if(is_array($attachment)){ // 添加附件
        foreach ($attachment as $file){
            is_file($file) && $mail->AddAttachment($file);
        }
    }
    return $mail->Send() ? true : $mail->ErrorInfo;
}

至此就可实现发送邮件了。
4、连续循环发送邮件出现cannot redeclare PHPMailerAutoload()

foreach ($res as $key => $value) {
    think_send_mail($mail,'XXX','自动提醒',$mail_text);    
}

出现此问题的原因在于循环调用think_send_mail函数是会重复调用$mail= new \PHPMailer();
而PHPMailer()里会加载一个文件,所以循环发送就会出现上面的报错重复加载类文件。所以我们将对象的声明放到循环体外,然后进行传参。改为如下即可解决:

$class_mail=new \PHPMailer(); 
foreach ($res as $key => $value) {
    think_send_mail($class_mail,$mail,'XXX','自动提醒',$mail_text);   
}
tp3.2.2整合PHPMailer发邮件 tp3.2.2整合PHPMailer发邮件,可发附件,发送内容中可插入图片 立即下载

相关推荐

thinkphp3.2 发送邮件三个步骤-附件资源

thinkphp3.2 发送邮件三个步骤-附件资源

tp3邮件发送

首先开启QQ邮箱的POP3/SMTP服务 此时开启会有一个动态密码,这个先记下来,下面的function.php 文件夹的 $mail->Password = “*******”; // 邮箱授权码 填写刚才这个 先说下载插件PHPMailer https://pan.baidu.com/s/1J8hL48HI4BCcpD3UqDtROg 密码:43m1 有点版本没有以下这几个文件,...

chihouzi的博客 1万+

ArcGIS拓扑检查实战:5分钟搞定面重叠与缝隙问题(附详细截图)

本文详细介绍了如何使用ArcGIS进行拓扑检查,快速解决面重叠与缝隙问题。通过搭建拓扑检查环境、配置拓扑规则、五步闪电修复法及批量处理技巧,帮助用户高效完成数据修正,提升GIS数据质量。特别适合地籍管理、规划红线等场景应用。

z4a5b6的博客 741

Thinkphp发送邮箱提醒

Thinkphp发送邮箱提醒1.登录邮箱开启SMTP端口2.配置邮箱以及方法3.发送邮箱 1.登录邮箱开启SMTP端口 首先我用的是163邮箱,需要开启SMTP,设置密码 2.配置邮箱以及方法 //邮件配置 'THINK_EMAIL' => array( 'SMTP_HOST' => 'smtp.163.com', //SMTP服务器 'S...

心学的博客 1019

基准电压 + 运放 + 低边MOS恒流源控制原理

因为恒流源强制 Iout不变,而 Vin​ 增加时,负载压降 Iout⋅Rload不变,多余的电压只能由MOS管的 VDS承担,因此 VDS必然增加。在饱和区,MOS 管的 ID 仅由 VGS决定,与 VDS 无关,这样,负载变化时,VDS可自由调整以维持 Iout恒定。当 Vin​ 小到无法满足 VDS>VGS−Vth时,MOS管进入线性区,Iout 会随 Vin​ 下降而减小,恒流失效。由于 Vref和 Rsense未变,Iout无需调整,运放无需动作,OUT保持不变,Iout恒定。

weixin_50643237的博客 2655

网络安全 —— 实验(基于华为eNSP模拟器)

8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)5. 实验五 —— 将交换机作为PC端通过交换机相连。5. 实验五 —— 将交换机作为PC端通过交换机相连。4. 实验四 —— 两个PC机通过两台交换机相连。2. 实验二 —— 两个PC机通过交换机相连。2. 实验二 —— 两个PC机通过交换机相连。

这个家伙看起来很懒,只想把你留下来哦 9338

php fatal error: cannot redeclare,Fatal error: Cannot redeclare 常见问题_PHP教程

fatal error: cannot redeclare这种问题php教程 开发可能会碰到过,原因是很简单的,就是重复调用了相同名字的函数,function mydate($format='y-m-d h:i:s',$timest=0){global $cfg_cli_time;$addtime = $cfg_cli_time * 3600;if(empty($format)){$format ...

weixin_35554306的博客 5130

【转载】参数估计(Parameter Estimation):频率学派(最大似然估计MLE、最大后验估计MAP)与贝叶斯学派(贝叶斯估计BPE)

基础 频率学派与贝叶斯学派 http://www.douban.com/group/topic/16719644/ http://www.zhihu.com/question/20587681 最大似然估计(Maximum likelihood estimation,MLE) http://baike.baidu.com/view/1918804.htm http://baike.baidu.co

影 的专栏 3413

ThinkPHP中邮件发送功能

初次使用thinkphp框架,开发一个邮件发送功能,由于对框架不熟悉折腾了几个小时终于成功了,以下是代码记录。 此函数只能在ThinkPHP中使用且需要phpmailer扩展的支持;phpmail的下载地址:https://code.google.com/a/apache-extras.org/p/phpmailer 将phpmailer解压后放置扩展放置到第三方类库扩展目录下:ThinkP...

weixin_30477293的博客 207

3、流程引擎下载安装与部署

camunda有多种使用方式,此处先使用独立平台的方式部署引擎,这种用法适合分布式,微服务化,多语言异构系统的使用方式。

leyoliu的博客 5520

【YOLO系列】YOLOv11详解:模型结构、损失函数、训练方法及代码实现

YOLOv11在目标检测领域实现重大突破,通过动态骨干网络(Dyna-Backbone)和FPN++架构,在保持高帧率(≥60FPS)的同时提升小目标检测精度(AP_S提升5.6%)。创新采用CIoU++损失函数和类别平衡Focal Loss,结合Mosaic-Plus数据增强,参数量减少18%至6.5M。实验显示,该模型在COCO数据集上实现更高mAP,特别适合移动端部署,Jetson Xavier平台能耗比优化至3.2W·ms⁻¹,支持目标检测、实例分割等多任务场景。关键创新包括动态深度调整和双向特征金

一碗白开水一 3444

php如何避免Fatal error: Cannot redeclare class

在开发的过程中,有时由于代码文件比较多,可能无故就会引入相同的类、相同的函数,那有没有办法不出现这种严重的bug呢? 有三种办法可以解决上面的问题。 1、使用不同的名字来命名类和函数,对于文件不是很多的话是可以的,但是文件太多的话就不方便了。 2、使用include_once和require_once来引入,但多少会存在效率问题。 3、使用php的命名空间,如下: t

1540

AgentScope Java 2.0 项目实战: 从零构建自己的个人AI助手“小龙虾“

本文系统介绍如何基于Spring Boot WebFlux、React 18和TypeScript,从零搭建一个本地化的个人AI助手管理平台——AgentScope Paw。项目支持多Agent创建与管理、SSE流式对话、工作区文件CRUD、技能市场、子智能体孵化、AI辅助起草Agent配置等核心功能,并深度集成钉钉、企业微信、飞书、GitHub等IM通道。

program哲学 1425

在Thinkphp3.2 中使用PHPMailer 发送邮件

phpmailer发送邮件是php开发者首选的一个邮件发送插件了,下面我来介绍怎么集成phpmailer到thinkphp框架了,有需要了解的朋友可参考。 phpmailer发送邮件功能很强大,今天真正的体验一下,简单说一下配置,本人是在thinkphp中是用的. 第一步 :下载附件PHPMailer解压到ThinkPHP\Library\Vendor 第二步:在Commo...

140

一个车载HUD的设计参考

一个车载HUD的设计参考

weixin_72050316的博客 796

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ThinkPHP3.2结合PHPMailer发送邮件

前些天没事儿捣鼓了下TP3.2结合PHPMailer发送邮件,记录下来,一方面做为笔记,另一方面也希望能对大家有所帮助 准备工作: 下载 ThinkPHP3.23 下载 PHPMailer 方法一 1.将PHPMailer解压后 在ThinkPHP\Library\Org\Util目录下新建一个文件夹PHPMailer,如果你觉得麻烦可以将解压后的所有文件放到该文件夹

tongxingjunjun123的专栏 818

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ThinkPHP3.12使用PHPMailer发送邮件

http://www.php400.cn/265.html 导读:PHP自带的mail()函数,是php内置发邮件的函数,该函数虽然简单,但是要想真正可以发邮件得有很复杂的配置。不适合新手,以及项目实际的应用的开发。php的mail()函数复杂配置,使得直接用函数发邮件变得不是上上之策,所以我们在实际中都会使用第三方类库,今天我介绍的是PHPMailer.class.php(

A9925的专栏 1916

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

将PHPMailer整合到ThinkPHP 3.2 中实现SMTP发送邮件

本内容转载出处:http://my.oschina.net/BearCatYN/blog/299192 并对以下内容做了一处说明。 ThinkPHP没有邮件发送的功能,于是,我就想了想,就将PHPMailer整合到ThinkPHP中吧。 PHPMailer是不符合ThinkPHP规范的插件程序,所以,我们需要先将PHPMailer程序放到ThinkPHP的 Library/Vendor目录下,...

weixin_30800987的博客 206

TP5使用PHPMAILER发送邮件

TP使用PHPMAILER发送邮件 1.申请一个SMTP服务的邮箱。 我申请的是smtp.163.com的服务,注意SMTP服务密码不是登陆密码,需要单独设置 2.下载phpmailer类库文件http://pan.baidu.com/s/1kUNK9vx 3.将PHPMAILER类库中的class.phpmailer.php和class.smtp.php文件取出来,并重新命名为...

diaoliu7156的博客 288

ThinkPHP邮件发送S(Smtp + Mail + phpmailer)

  三种邮件发送介绍:(Smtp,Mail以及phpmailer)ThinkPhp 框架下开发。   邮件发送配置先前准备(用该账号做测试用):(这里用新浪邮箱服务器)将自己的新浪邮箱开通 POP3/SMTP服务: 新浪邮箱中 :设置->账户下面的POP3/SMTP服务 选择开通(然后一步一步完成开通)。  客户端html代码: 1 <body> ...

weixin_34187822的博客 472

【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送

第一步:下载phpmailer文件,主要用到的文件只有箭头指向的两个,thinkphp5中,把class.phpmailer.php改成了phpmailer.php 第二步: 将phpmailer文件夹放到extend扩展类库目录(可定义)中 第三步:打开phpmailer.php 和 class.smtp.php文件,最前面加上命名空间(TP5 必须要加上命名空间) namesp...

weixin_33757609的博客 199

PHP发送邮件功能--ThinkPHP3.2.3

首先第一步 :在网上down了一个PHPMailer插件,插件地址》https://github.com/PHPMailer/PHPMailer下载解压后,这里我们只需要用到其中两个文件,如下图所示: 将class.phpmailer.php和class.smtp.php两个文件分别放置到ThinkPHP/Library/Vendor/PHPMailer/class.phpmai...

weixin_30687587的博客 135

thinkphp实现163、QQ邮箱收发邮件的方法

用了很长时间去一步一步摸索,终于先在163 网易邮箱上测试成功了,下面就把这个过程分享给大家。 在进入正题这前先看下网易(163)邮箱的服务器地址和端口号: 一、前期准备 使用网易邮箱,当然要注册个账号,这个就不用我多说了,自己去注册。。。 注册完之后,就要去开启 POP3/SMTP/IMAP服务。 在开启服务时,需要客户端授权密码(这里需要手机验证,MD拐弯抹角的要手机号码)。

黄啊码 3570

Tp5.0 PHPMailer邮件发送

今天突然想起来邮件发送,就看了一下PHPmailer,其实这个用起来很简单,都是封装好的 https://github.com/PHPMailer/PHPMailer,直接下载下来之后,把他放入TP5.0 框架的extend文件夹里面在Controller里面创建一个文件Mail.php,代码如下 1 /** 2 * Created by PhpStorm. 3 * User: luxia...

smile的博客 530

ThinkPHP发送邮件以及PHPCMS之中如何引入第三方类库

引入类文件:PHPMailer.class.php 里面有个require下面这个类文件的,你需要写对路径哟       SMTP.class.php 在控制器之中写调用方法: 1 function SendEmail($email,$title,$content) 2 { 3 import('Com.PHPMailer'); 4 $mail = new \PHP...

weixin_30666401的博客 252

Thinkphp5的使用phpmailer实现发邮件功能(163邮箱)

Thinkphp5本身并没有实现发邮件的功能,至少据我所知。 本文利用网易邮箱作为发邮件的邮箱。作为发送邮件的前提是需要开启SMTP服务,打开网易邮件,点击设置按钮,如下图所示 勾选smtp服务 保存之后点击->客户端授权密码,我的已经开通 没有开通的按照步骤操作即可,然后下面是下载phpMailer,https://github.com/PHPMailer/PHPMai...

weixin_30908941的博客 224
上一篇: Pandas入门:DataFrame的简单应用
下一篇: Thinkphp3.23下实现文件下载功能
AutomateYCB
博客等级 码龄12年 3粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值