thinkphp集成系列之phpmailer批量发送邮件
前段时间写了一篇博客:thinkphp集成系列之短信验证码、订单通知
说了这是一个短信通知泛滥的年代;大部分网站的邮箱注册都已经被短信注册所取代;
但是邮件和短信相比在一些场景依然有着重要的意义和优势;
1:零成本;发邮件没有费用;
2:内容丰富且量大;邮件可以长篇大论;图文并茂;
3:增加访问量;用户很容易通过邮件中的链接访问网站;
好了;下面来来为thinkphp集成邮件系统;
示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
一:引入phpmail
从示例项目中复制两个文件到自己的项目;
/ThinkPHP/Library/Org/Nx/class.phpmailer.php ;
/ThinkPHP/Library/Org/Nx/class.smtp.php ;
不要从官网上下载;因为下载的phpmail直接引入thinkphp是有一些坑会报错的;
具体报什么错;年代久远;当年整合的时候没有记录;
二:设置配置项
/Application/Common/Conf/config.php
'EMAIL_FROM_NAME' => '', // 发件人'EMAIL_SMTP' => '', // SMTP服务器'EMAIL_USERNAME' => '', // 账号'EMAIL_PASSWORD' => '', // 密码
如果使用163邮箱;此处有一个坑;首先是要开启smtp;
开启过程中是要设置一个授权密码;开启完成;又一个坑也就同步挖好了;
配置项中的EMAIL_PASSWORD 指的不是163邮箱的登录密码;而是授权密码;
否则SMTP connect() failed;
三:发送邮件
/*** 发送邮件* @param string $address 需要发送的邮箱地址 发送给多个地址需要写成数组形式* @param string $subject 标题* @param string $content 内容* @return boolean 是否成功*/
function send_email($address,$subject,$content){$email_smtp=C('EMAIL_SMTP');$email_username=C('EMAIL_USERNAME');$email_password=C('EMAIL_PASSWORD');$email_from_name=C('EMAIL_FROM_NAME');if(empty($email_smtp) || empty($email_username) || empty($email_password) || empty($email_from_name)){return array("error"=>1,"message"=>'邮箱配置不完整');}require './ThinkPHP/Library/Org/Nx/class.phpmailer.php';require './ThinkPHP/Library/Org/Nx/class.smtp.php';$phpmailer=new \Phpmailer();// 设置PHPMailer使用SMTP服务器发送Email$phpmailer->IsSMTP();// 设置为html格式$phpmailer->IsHTML(true);// 设置邮件的字符编码'$phpmailer->CharSet='UTF-8';// 设置SMTP服务器。$phpmailer->Host=$email_smtp;// 设置为"需要验证"$phpmailer->SMTPAuth=true;// 设置用户名$phpmailer->Username=$email_username;// 设置密码$phpmailer->Password=$email_password;// 设置邮件头的From字段。$phpmailer->From=$email_username;// 设置发件人名字$phpmailer->FromName=$email_from_name;// 添加收件人地址,可以多次使用来添加多个收件人if(is_array($address)){foreach($address as $addressv){$phpmailer->AddAddress($addressv);}}else{$phpmailer->AddAddress($address);}// 设置邮件标题$phpmailer->Subject=$subject;// 设置邮件正文$phpmailer->Body=$content;// 发送邮件。if(!$phpmailer->Send()) {$phpmailererror=$phpmailer->ErrorInfo;return array("error"=>1,"message"=>$phpmailererror);}else{return array("error"=>0);}
}
发送邮件调用函数;
send_email('baijunyao@baijunyao','邮件标题','邮件内容');
// 如果群发邮件 则传入数组即可
$emails=array('b1@baijunyao.com','b2@baijunyao.com');
send_email($emails,'邮件标题','邮件内容');
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com
转载于:https://blog.51cto.com/shuaibai123/1784209
thinkphp集成系列之phpmailer批量发送邮件相关推荐
- ThinkPHP 3.2 DEMO案例系列【phpmailer批量发送邮件】
但是邮件和短信相比在一些场景依然有着重要的意义和优势: 1:零成本:发邮件没有费用: 2:内容丰富且量大:邮件可以长篇大论:图文并茂: 3:增加访问量:用户很容易通过邮件中的链接访问网站: 好了:下面 ...
- php 结合 PHPMailer 批量发送邮件。
1.下载 PHPMailer: https://sourceforge.net/projects/phpmailer/ 2.文件放到项目中,加载引入到文件中. 3.php代码. <?php /* ...
- PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...
- thinkphp整合系列之gulp实现前端自动化
这又是一个一次整合终身受益:不止是终身:换个项目同样可以很方便复用:不信你看另一个项目: thinkphp整合系列之gulp实现前端自动化 虽然我等叫php程序猿:但是不可避免的是要跟html打交道的 ...
- 个人永久性免费-Excel催化剂功能第24波-批量发送邮件并指点不同附件不同变量...
批量发送邮件功能,对高级OFFICE用户来说,第1时间会想到使用WORD的邮件合并功能.但对于需要发送附件来说,邮件合并功能就无能为力,同样还有的限制是用户电脑上没有安装OUTLOOK,同样也不能发送 ...
- 个人永久性免费-Excel催化剂功能第87波-将批量发送邮件做到极致化,需借力Outlook...
在过往的功能中,已经实现过批量发送邮件的功能,但收到的反馈是部分企业邮箱不能用,原因是无解的,因为程序员能找到的公开的类库只能实现一些通用性的场景,太复杂的企业环境可能会失灵. 近期认真来学习Outl ...
- Lync Server 2010的部署系列(三) lync批量导入用户联系人
Lync Server 2010的部署系列(三) lync批量导入用户联系人 一.批量导入原理介绍 二.导入联系人操作指南 一.批量导入原理介绍 (介绍摘自http://ucworld.blog.51 ...
- Spring多线程批量发送邮件(ThreadPoolTaskExecutor)
1,需求:使用多线程批量发送邮件 需要批量发送邮件大概400封左右,但是因为发送邮件受网络限制,所以经常导致等待超时.所以就想到了使用多线程来发邮件,因为是异步的所以返回结果不受发邮件影响. 2,思路 ...
- php tp框架做选中删除,关于thinkphp框架实现删除和批量删除的分析
这篇文章主要为大家详细介绍了thinkPHP框架实现删除和批量删除的相关资料,需要的朋友可以参考下 本文实例讲一下如何用thinkphp实现数据的删除和批量删除吧. 预期效果图: 原谅博主对照片的处理 ...
最新文章
- 2021年大数据Spark(十二):Spark Core的RDD详解
- Caffe源码中caffe.proto文件分析
- mfc 找到字符串中字符_[LeetCode] 467. 环绕字符串中唯一的子字符串
- P3807-[模板]卢卡斯定理
- Oracle 数据库
- 基于visual Studio2013解决C语言竞赛题之1083人机博弈
- php过滤非法字符函数,非法字符过滤_PHP教程
- unittest测试框架详谈及实操(一)
- IE下javascript cookie path
- 阿里巴巴矢量图标库在线链接使用图标
- 华大MCU(五):HC32F460串口IAP升级boot部分
- Anki显示音标问题
- python中的translate函数_Python:内置函数makestrans()、translate()
- 图片转ICO工具升级版本(支持多位深度32位 24位 8位 4位 1位,单文件)
- You are a Badass: how to stop doubting your greatness and start living an awesome life, Jen Sincero
- 文件服务器 tmp文件夹,Linux管理临时文件tmpfiles
- 2023年整理:吉利车机安装安装第三方软件教程,笔记本或手机操作方法!
- layui当前表格第一行_layui数据表格新增一行
- APP应用加固实战案例:贪玩蓝月
- java基于springboot+vue的企业员工人事工资薪酬管理系统 elementui