zoukankan      html  css  js  c++  java
  • ThinkPHP5 phpmailer发送邮件

     网上下载phpmailer文件 

    第一步:引入phpmailer

    在extend目录下创建PHPMailer 里面放入class.smtp.php和phpmailer.php文件

     第二步:配置email发送邮件参数

    先开启发送邮箱的服务器开启stmp服务 

    这里有两种方法

    一:在自己服务器配置stmp/pop3/imap等服务 具体操作请百度自行搜索 

    二:使用第三方email服务 

    我这里是用的第二种 而且用的是网易的stmp (腾讯的有点坑 我以前也用过)建议国内的话用网易的

    1.登录邮箱账号->设置->pop3/smtp/imap

    2.勾选stmp服务 然后获取smtp服务器地址smtp.163.com

    3.获取授权码   左侧菜单->客户端授权码 ->开启  如果没有显示就点击重置授权码 我这里已经获取过了 获取了最好自己保存一下 我们这里假设授权密码是testpassword

    4.进入项目目录下config.php 配置一个email 的发送配置 我这里存在php文件里 也可以存在数据库 或文件里

    //邮件发送配置
    'email' => [
      'host' => 'smtp.163.com',//邮件服务器 
      'port' => 465,//发送邮件端口,默认有25,465,587 其中465 587是ssl协议 加密传输
      'smtp_auth' => true,//验证
      'smtp_secure' => 'ssl',//验证方式
      'charset' => 'UTF-8',//编码
      'encoding' => 'base64',//加密方式
      'user_name' => 'test@163.com',//stmp邮箱账号
      'pass_word' => 'testpassword',//stmp授权密码,前面步骤已获取
      'subject' => 'test',//主题
      'from' => 'test@163.com',//发送邮箱
      'from_name' => 'test',//发送人姓名

    ],

     第三步:添加发送邮件公共函数

    引入phpmailer

     注意:PHPMailer为文件目录 切记

    /**
     * 发送邮箱
     * @author gyj <test@qq.com>
     * @createtime 2018-08-20T10:09:07+0800
     * @param      $data 发送邮箱数据
     * @return     
     */
    function send_email($data = []) {
      
      $mail = new PHPMailer; //实例化
      $mail->IsSMTP(); // 启用SMTP
      $mail->Host = config('email.host'); //SMTP服务器 以126邮箱为例子 
      $mail->Port = config('email.port');  //邮件发送端口
      $mail->SMTPAuth = config('email.smtp_auth');  //启用SMTP认证
      $mail->SMTPSecure = config('email.smtp_secure');   // 设置安全验证方式为ssl
      $mail->CharSet = config('email.charset'); //字符集
      $mail->Encoding = config('email.encoding'); //编码方式
      $mail->Username = config('email.user_name');  //你的邮箱 
      $mail->Password = config('email.pass_word');  //你的密码 
      $mail->Subject = config('email.subject'); //邮件标题  
      $mail->From = config('email.from');  //发件人地址(也就是你的邮箱)
      $mail->FromName = config('email.from_name');  //发件人姓名
      if($data && is_array($data)){
        foreach ($data as $k=>$v){
          $mail->AddAddress($v['user_email']); //添加收件人(地址,昵称)
          $mail->IsHTML(true); //支持html格式内容
          $mail->Body = $v['content']; //邮件主体内容
          //发送成功就删除
          if ($mail->Send()) {
            return  true;
          }else{
            return  "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息  
          }
        }
      }           
    }

    第四步:调用

    $mail_res = send_email([['user_email'=>'test@qq.com','content'=>'test']]);

  • 相关阅读:
    通过AI识图判断图片是否为小票
    orcl 定时器
    防止表单重复提交常规方法
    代码规范案例(ssh分页)
    jquery的ajax提交时“加载中”提示的处理方法
    利用JS弹出层实现简单的动态提示“正在加载中,请稍等...”
    jquery 排序table的列
    Java多线程与网络编程综合使用
    大型Oracle数据库设计方案(精华)
    20155307 2016-2017-2 《Java程序设计》第10周学习总结
  • 原文地址:https://www.cnblogs.com/jiafeimao-dabai/p/9559344.html
Copyright © 2011-2022 走看看