前段时间写了一篇博客: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批量发送邮件相关推荐

  1. ThinkPHP 3.2 DEMO案例系列【phpmailer批量发送邮件】

    但是邮件和短信相比在一些场景依然有着重要的意义和优势: 1:零成本:发邮件没有费用: 2:内容丰富且量大:邮件可以长篇大论:图文并茂: 3:增加访问量:用户很容易通过邮件中的链接访问网站: 好了:下面 ...

  2. php 结合 PHPMailer 批量发送邮件。

    1.下载 PHPMailer: https://sourceforge.net/projects/phpmailer/ 2.文件放到项目中,加载引入到文件中. 3.php代码. <?php /* ...

  3. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

  4. thinkphp整合系列之gulp实现前端自动化

    这又是一个一次整合终身受益:不止是终身:换个项目同样可以很方便复用:不信你看另一个项目: thinkphp整合系列之gulp实现前端自动化 虽然我等叫php程序猿:但是不可避免的是要跟html打交道的 ...

  5. 个人永久性免费-Excel催化剂功能第24波-批量发送邮件并指点不同附件不同变量...

    批量发送邮件功能,对高级OFFICE用户来说,第1时间会想到使用WORD的邮件合并功能.但对于需要发送附件来说,邮件合并功能就无能为力,同样还有的限制是用户电脑上没有安装OUTLOOK,同样也不能发送 ...

  6. 个人永久性免费-Excel催化剂功能第87波-将批量发送邮件做到极致化,需借力Outlook...

    在过往的功能中,已经实现过批量发送邮件的功能,但收到的反馈是部分企业邮箱不能用,原因是无解的,因为程序员能找到的公开的类库只能实现一些通用性的场景,太复杂的企业环境可能会失灵. 近期认真来学习Outl ...

  7. Lync Server 2010的部署系列(三) lync批量导入用户联系人

    Lync Server 2010的部署系列(三) lync批量导入用户联系人 一.批量导入原理介绍 二.导入联系人操作指南 一.批量导入原理介绍 (介绍摘自http://ucworld.blog.51 ...

  8. Spring多线程批量发送邮件(ThreadPoolTaskExecutor)

    1,需求:使用多线程批量发送邮件 需要批量发送邮件大概400封左右,但是因为发送邮件受网络限制,所以经常导致等待超时.所以就想到了使用多线程来发邮件,因为是异步的所以返回结果不受发邮件影响. 2,思路 ...

  9. php tp框架做选中删除,关于thinkphp框架实现删除和批量删除的分析

    这篇文章主要为大家详细介绍了thinkPHP框架实现删除和批量删除的相关资料,需要的朋友可以参考下 本文实例讲一下如何用thinkphp实现数据的删除和批量删除吧. 预期效果图: 原谅博主对照片的处理 ...

最新文章

  1. 2021年大数据Spark(十二):Spark Core的RDD详解
  2. Caffe源码中caffe.proto文件分析
  3. mfc 找到字符串中字符_[LeetCode] 467. 环绕字符串中唯一的子字符串
  4. P3807-[模板]卢卡斯定理
  5. Oracle 数据库
  6. 基于visual Studio2013解决C语言竞赛题之1083人机博弈
  7. php过滤非法字符函数,非法字符过滤_PHP教程
  8. unittest测试框架详谈及实操(一)
  9. IE下javascript cookie path
  10. 阿里巴巴矢量图标库在线链接使用图标
  11. 华大MCU(五):HC32F460串口IAP升级boot部分
  12. Anki显示音标问题
  13. python中的translate函数_Python:内置函数makestrans()、translate()
  14. 图片转ICO工具升级版本(支持多位深度32位 24位 8位 4位 1位,单文件)
  15. You are a Badass: how to stop doubting your greatness and start living an awesome life, Jen Sincero
  16. 文件服务器 tmp文件夹,Linux管理临时文件tmpfiles
  17. 2023年整理:吉利车机安装安装第三方软件教程,笔记本或手机操作方法!
  18. layui当前表格第一行_layui数据表格新增一行
  19. APP应用加固实战案例:贪玩蓝月
  20. java基于springboot+vue的企业员工人事工资薪酬管理系统 elementui

热门文章

  1. jQuery 插件 jSlider 图片轮播
  2. springboot新版本(2.0.0+)自定义ErrorController中使用ErrorAttributes
  3. fuzz系列之libfuzzer
  4. Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议
  5. shlve模块 序列化 python任意的数据
  6. 【IT笔试面试题整理】连续子数组的最大和
  7. Python time和datatime模块
  8. Light OJ 1012
  9. 1244. Gentlemen
  10. jquery 常用属性和函数(part I)