zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    MFC中,什么是CALLBACK函数,什么是WINAPI函数,二者有什么区别和联系?
    浙江移动话费计算-js代码
    [转]C#网页自动登录和提交POST信息的多种方法
    JavaScript小数四舍五入toFixed
    C#.NET应用程序实现网页自动登录
    VC改变对话框按钮字体颜色和背景的解决方案(转)
    WPF窗口阴影
    用MVVM模式开发中遇到的零散问题总结(1)
    NPOI之Excel——合并单元格、设置样式、输入公式
    近距离接触RAC DRM
  • 原文地址:https://www.cnblogs.com/tinywan/p/5865568.html
Copyright © 2011-2022 走看看