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

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

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

 

时间: 2024-10-14 18:54:45

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

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

源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkPHP框架(3.2) Redis数据库:测试数据回调函数:通过一个Redis的自增incr来测试异步脚本执行的次数和访问的时间(平时都是用Redis测试写日志的) 编辑器:Visual Studio Code (CLI运行环境好看点) PHP 的命令行模式       从版本 4.3.0 开始,PHP

phpmailer简单发送邮件的方法(附phpmailer源码下载)_php技巧

本文实例讲述了phpmailer简单发送邮件的方法.分享给大家供大家参考,具体如下: 首先,点击此处本站下载相应的php文件. 解压后有2个php文件(2个类)  1个html文件(API) 将2个php文件放到php项目中 简述:我这里是用一个163的邮箱发消息给126的邮箱 关键代码如下: <?php require 'class.phpmailer.php'; $mail = new PHPMailer(true); //建立邮件发送类 $mail->CharSet = "UT

跪求asp.net批量发送邮件问题

问题描述 选择用户组后,给指定的用户组下的用户,批量发送邮件. 解决方案 解决方案二:参考:解决方案三: 解决方案四:谢谢我先看看解决方案五:///<summary>///下发邮件///</summary>///<paramname="context">邮件内容</param>///<paramname="employeeEmailArray">发送地址</param>///<paramn

怎样在Word2007中直接批量发送邮件

  当在Word2007中编辑好一篇文档,如果想要省时间直接在Word2007中发送给他人怎么操作呢?下面小编就来教大家如何在Word2007中直接批量发送邮件. 怎样在Word2007中直接批量发送邮件 1.启动Word2007,打开我先前制作好的通知文件,单击菜单栏--邮件--选择收件人--使用现有列表. 2.弹出选取数据源对话框,双击邮箱地址xls文件. 3.选择插入文件的表格,我们选择sheet1. 4.插入合并域,勾选数据库域,选择姓名,插入. 5.然后光标单击需要填入邮箱地址的下划线

php-怎样实现在网页上点击按钮批量发送邮件功能?

问题描述 怎样实现在网页上点击按钮批量发送邮件功能? 我想要实现的是点击按钮把邮件发给不同的人,邮件内容也不一样,要CC的人也不一样.如果用mailto的话貌似一次只能发一封.请问我该怎么做呢?收件人的信息都可以用php得到 解决方案 网页实现批量数据导入功能如何实现从网页中自动点击他方网站上的按钮? 解决方案二: 既然你的程序能发送一个邮件,那么循环执行不就可以批量发邮件了.

ThinkPHP中数据操作案例分析_php实例

本文实例分析了ThinkPHP中数据操作方法.分享给大家供大家参考.具体如下: 模板中使用函数,相信大部分的TPer都知道也用过吧. 案例: 获取用户名的方法 function get_username($uid){ $row = M('User')->getbyUid($uid); return $row['username']; } 在模板中通过uid显示用户名 <volist name="rows" id="row"> <tr>

MySQL优化案例系列-mysql分页优化_Mysql

通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询.例如下面这个SQL: SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT 100, 10; 或者像下面这个不带任何条件的分页SQL: SELECT * FROM `t1` ORDER BY id DESC LIMIT 100, 10; 一般而言,分页SQL的耗时随着 start 值的增加而急剧增加,我们来看下面这2个不同起始值的分页SQL执行

解析php中用PHPMailer来发送邮件的示例(126.com的例子)_php技巧

<?phprequire_once('../class.phpmailer.php');$mail= new PHPMailer();$body= "我终于发送邮件成功了!呵呵!goodboy xxxxxxx!<br/><a>http://news.qq.com/a/20111115/000792.htm?qq=0&ADUIN=594873950&ADSESSION=1321316731&ADTAG=CLIENT.QQ.3493_.0<

php 利用phpmailer 在线发送邮件

html代码 <form action="lead_mail_send.php" method="Post" enctype="multipart/form-data" name="myfm">   <table width="80%" border="0" align="center" cellspacing="6">