但是邮件和短信相比在一些场景依然有着重要的意义和优势;

1:零成本;发邮件没有费用;

2:内容丰富且量大;邮件可以长篇大论;图文并茂;

3:增加访问量;用户很容易通过邮件中的链接访问网站;

好了;下面来来为thinkphp集成邮件系统;

示例项目:https://github.com/Tinywan/ThinkPhpStudy

一、引入phpmail

从示例项目中复制两个文件到自己的项目;

/ThinkPHP/Library/Org/Nx/class.phpmailer.php ;
/ThinkPHP/Library/Org/Nx/class.smtp.php ;

二、设置配置项

 //***********************************邮件服务器**********************************
'EMAIL_FROM_NAME' => 'tinywan@163.com', // 发件人
'EMAIL_SMTP' => 'smtp.163.com', // smtp
'EMAIL_USERNAME' => 'tinywan@163.com', // 账号
'EMAIL_PASSWORD' => '你的密码 // 授权密码而不是登陆的密码

三、配置163箱:

    首先是要开启smtp服务:

配置文件中的信息在这里:

注意:开启过程中是要设置一个授权密码,这里的授权密码也就是配置文件中需用的那个密码,否则的话否则,SMTP connect() failed

'EMAIL_PASSWORD'         => '你的密码 // 授权密码而不是登陆的密码

四、发送邮件的实际代码,这个在(ThinkPHP框架中的Function()函数中写着来)

/**
* 发送邮件
* @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);
}
}

五、发送邮件调用函数示例:

 /**
* 发送邮件
*/
public function send_email()
{
$name = I('post.name', '这是一份测试邮件名称');
$address = I('post.address', '这是一份测试邮件发送的地址');
$phone = I('post.phone', '13669361192');
$email = '2680737855@qq.com';
$str = <<<html
姓名:$name <br>
地址:$address <br>
手机号:$phone
html;
$result = send_email($email, '这个邮件是我用来做测试的,亲!', $str);
if ($result['error'] == 1) {
var_dump($result);
die;
}
var_dump('发送完成');
}

基本来源:http://baijunyao.com

ThinkPHP 3.2 DEMO案例系列【phpmailer批量发送邮件】的更多相关文章

  1. PHP通过phpmailer批量发送邮件功能

    前端页面代码: 注意:目前发送人使用的qq邮箱支持的不是特别友好.建议使用网易 新浪 163等其他邮箱. 需要用到phpmailer包 下载地址:https://sourceforge.net/pro ...

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

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

  3. FME2010 案例分析: 动态批量转换

    Link: http://blog.163.com/antufme@126/blog/static/140492492201022545726452/?suggestedreading&wum ...

  4. ArcGIS案例学习笔记-批量裁剪地理模型

    ArcGIS案例学习笔记-批量裁剪地理模型 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:空间数据的批量裁剪 优点:1.批量裁剪:任意多个目标数据,去裁剪任意 ...

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

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

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

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

  7. PHPMailer不能发送邮件

    PHPMailer不能连接SMTP服务器,和修改SMTP大小写没有关系 (2011-10-22 12:17:35) 转载▼ 标签: php phpmailer 杂谈 分类: 默认分类 PHPmaile ...

  8. .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件

    .net调用Outlook 批量发送邮件,可指定Outlook中的账号来发送邮件 源码可以在我的资源列表中下载: MPOEMail http://download.csdn.net/my VS2012 ...

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

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

随机推荐

  1. ESXi虚拟机开机进入bios的方法

    想要修改启动顺序, 发现界面比较难弄 应该是在设置里面有修正. 首先编辑设置 增加如下设置 就可以了.

  2. python学习笔记三——控制语句

    2.5 运算符与表达式 2.5.1 算术运算符和算术表达式 算术运算符包括四则运算符.求模运算符和求幂运算符. 算术运算符 加减乘除:+ - * / 表达式:x+y   x-y   x*y  x/y ...

  3. Test Scenarios for a window

    1 check if default window size is correct2 check if child window size is correct3 check if there is ...

  4. anaconda2安装cv2

    http://m.blog.csdn.net/u010167269/article/details/62447648 下载离线安装包:https://anaconda.org/menpo/opencv ...

  5. TortoiseGit连接gitlab,一直要求输入密码

    问题背景: 公司使用gitlab作为代码管理平台,安装了TortoiseGit之后,使用正常.但是重启电脑之后,再次使用TortoiseGit操作时总是提醒输入gitlab的账号.如下图: 问题原因: ...

  6. BZOJ1861[Zjoi2006]书架——非旋转treap

    题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本.由于这些 ...

  7. POJ3252-RoundNumbers-排列组合

    当一个数的二进制表示中,0的个数大于或等于1的个数时,叫做RoundNumber.求从S到F两个数(包含)之间的RoundNumber个数. 这类题一般都是先求出0到N的个数,然后两个相减. 由于题目 ...

  8. Wordpress 之删除 RSS 功能 的"文章RSS"、"评论RSS"、"WordPress.org"

    一. 去除底部“自豪地采用 WordPress”版权信息: 1.打开主题文件夹:wp-content/themes/twentyeleven/footer.php; 2.找到 这段代码 删除即可: & ...

  9. MT【37】二次函数与整系数有关的题

    解析: 评:两根式是不错的考虑方向,一方面二次函数两根式之前有相应的经验,另一方面这里$\sqrt{\frac{b^2}{4}-c}$正好和两个根有关系.

  10. 【刷题】BZOJ 1132 [POI2008]Tro

    Description 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 Input 第一行给出数字N,N在[3,3000] 下面N行给出N个点的坐标,其值在[0,10 ...