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(‘[email protected]‘,‘邮件标题‘,‘邮件内容‘);// 如果群发邮件 则传入数组即可$emails=array(‘[email protected]‘,‘[email protected]‘);send_email($emails,‘邮件标题‘,‘邮件内容‘);

本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com

时间: 2024-09-30 09:42:08

thinkphp集成系列之phpmailer批量发送邮件的相关文章

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

但是邮件和短信相比在一些场景依然有着重要的意义和优势: 1:零成本:发邮件没有费用: 2:内容丰富且量大:邮件可以长篇大论:图文并茂: 3:增加访问量:用户很容易通过邮件中的链接访问网站: 好了:下面来来为thinkphp集成邮件系统: 示例项目:https://github.com/Tinywan/ThinkPhpStudy 一.引入phpmail 从示例项目中复制两个文件到自己的项目: /ThinkPHP/Library/Org/Nx/class.phpmailer.php ; /Think

thinkphp集成系列之短信验证码、订单通知

现在这个短信通知泛滥的年代:应用如果没有个短信注册:你都不敢说你是搞开发的: 这个验证码搞起来是不难的:但是如果刚接触也是有点不知从哪下手的迷茫: 先讲下概念: 要想发送验证码:需要至少三项:appid.key.模板id: appid.和key比如较容易理解:各种第三方平台都会提供的:可能叫法不一样: 模板id就是指的短信的内容:例如[淘宝]验证码是192612,请您在5分钟内输入: 这就是一个模板:我们发短信的时候只能改变192612.和5这两个数字:其他是固定的: 因为政策的问题:模板需要申

thinkphp集成系列之阿里云oss

web2.0时代:除了纯信息展示类的网站:基本都是有文件上传功能的: 最不济你得让用户换个头像吧:但是随着业务的发展: 如果上传的文件都和网站程序源代码放在一起:那是有相当多的弊端的: 1:静态文件会占用大量带宽: 2:服务器的成本略高: 常规的做法是把php源代码放到一台服务器上:图片等静态文件放在另一台服务器上: 当一个神奇的“云”时代的到来后:一切就变的更加简单了: 在业务还比较小的时候:我们无需大费周折的去搞一台静态文件服务器:直接使用第三方的即可: 好了:洛里啰嗦了半天:下面请出本篇博

thinkphp集成系列之rbac的升级版auth权限管理系统demo

权限管理基本是作为网站的标配了: 除非是像博客这类个人使用的:否则权限管理的重要性不言而喻: 今个就来写写auth权限管理: thinkphp已经内置了auth权限类位于:/ThinkPHP/Library/Think/Auth.class.php 执行里面的sql生成3张表auth_rule.auth_group.auth_group_access: 然后自己再建一张users表:当然起其他的名字也是可以的:不过是需要在配置项中说明: 先对各表的作用简单介绍: users:用户表:这个不废话:

thinkphp整合系列之友盟消息推送

上篇文章 thinkphp集成系列之phpmailer批量发送邮件讲过的: 邮件有着零成本.内容丰富的优点: 但是一个非常硬的硬伤:这家伙的及时性太差了: 尤其是随着90.00后的崛起:从上网开始体验的就是QQ.微信的即时通讯: 唯一有的邮箱也还是自动开通的QQ邮箱:然而还是一连串的未读: 那么有木有一种零成本.但是及时性比较好的方案呢? 有的:那就是消息推送:当然:前提是用户已经安装了app: 今个先就友盟的推送来讲解下:http://push.umeng.com/ 依然是以开源项目示例:ht

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

本内容转载出处:http://my.oschina.net/BearCatYN/blog/299192,并做了一处修改. ThinkPHP没有邮件发送的功能,于是,我就想了想,就将PHPMailer整合到ThinkPHP中吧. PHPMailer是不符合ThinkPHP规范的插件程序,所以,我们需要先将PHPMailer程序放到ThinkPHP的 Library/Vendor目录下,我这里是最新版的ThinkPHP 3.2,如果是是ThinkPHP 3.2之前的版本,可能就是Lib目录了.Ven

20150322 利用phpmailer来发送邮件

20150322 利用phpmailer来发送邮件 2015-03-22 Lover雪儿 ? 前面我们实现了phpmailer来发送邮件,此处我们来实现利用pop3来收取邮件. http://www.cnblogs.com/lihaiyan/p/4356704.html ? 常用命令: telnet pop3.163.com 110 ctrl + ] 开启回显功能 user 用户名 pass 密码 stat 统计 返回邮件数量 及 所占 总空间 top 邮件号 行号 ,查看邮件头 邮件从旧到新递

thinkphp整合系列之短信验证码、订单通知

现在这个短信通知泛滥的年代:应用如果没有个短信注册:你都不敢说你是搞开发的: 这个验证码搞起来是不难的:但是如果刚接触也是有点不知从哪下手的迷茫: 先讲下概念: 要想发送验证码:需要至少三项:appid.key.模板id: appid.和key比如较容易理解:各种第三方平台都会提供的:可能叫法不一样: 模板id就是指的短信的内容:例如[淘宝]验证码是192612,请您在5分钟内输入: 这就是一个模板:我们发短信的时候只能改变192612.和5这两个数字:其他是固定的: 因为政策的问题:模板需要申

Thinkphp集成手机支付宝接口功能

最近做微商城,需要实现手机wap支付功能,选择的是支付宝的接口支付功能.这里是我用的是支付宝“手机网站支付”产品(注:该产品要支付宝企业账号才能申请),具体步骤如下: 一.下载支付宝接口包 https://b.alipay.com/order/productDetail.htm?productId=2013080604609688 二.重新整理接口包文件 下载下来的接口包文件有很多语言的源码 注:openssl用来生成公私钥,RSA签名才使用.这里我们用的MD5签名,所有该文件用不到. 我们选择