1. 下载PHPMailer
    下载链接链接:https://pan.baidu.com/s/1C0D_O3aq08naeb6Sfda4ZA 密码:vv65

最新版的github上也有,不过小编没看懂,只能先用这个版本了。把下载好的包解压之后放在ThinkPHP\Library\Vendor里面。

  1. \Application\Common\Common里面的function.php(如果文件不存在就自己手动进行创建)这个文件里面写入发送邮件的函数。

    /*
    * 发送邮件
    * @param $to string
    * @param $title string
    * @param $content string
    * @return bool
    * */
     function sendMail($to, $title, $content) {
       Vendor('PHPMailer.PHPMailerAutoload');
       $mail = new PHPMailer(); //实例化
       $mail->IsSMTP(); // 启用SMTP
       $mail->Host=C('MAIL_HOST'); //smtp服务器的名称(这里以QQ邮箱为例)
       $mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证
       $mail->Username = C('MAIL_USERNAME'); //发件人邮箱名
       $mail->Password = C('MAIL_PASSWORD') ; //163邮箱发件人授权密码
       $mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)
       $mail->FromName = C('MAIL_FROMNAME'); //发件人姓名
       $mail->AddAddress($to,"尊敬的客户");
       $mail->WordWrap = 50; //设置每行字符长度
       $mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件
       $mail->CharSet=C('MAIL_CHARSET'); //设置邮件编码
       $mail->Subject =$title; //邮件主题
       $mail->Body = $content; //邮件内容
       $mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
    
       return($mail->Send());
     }

在配置文件里面写入以下配置

   'MAIL_HOST' =>'smtp.126.com',//smtp服务器的名称
   'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证
   'MAIL_USERNAME' =>'***********@126.com',//发件人的邮箱名
   'MAIL_PASSWORD' =>'**********',//163邮箱发件人授权密码
   'MAIL_FROM' =>'*******@126.com',//发件人邮箱地址
   'MAIL_FROMNAME'=>'小宁博客',//发件人姓名
   'MAIL_CHARSET' =>'utf-8',//设置邮件编码
   'MAIL_ISHTML' =>TRUE // 是否HTML格式邮件
  1. 在控制器里面直接调用局可以了

     SendMail('*******@qq.com',"小宁博客","欢迎来到小宁博客");

注意:可以通过$mail->ErrorInfo来显示错误,如果出现SMTP Error: data not accepted,证明你的测试数据不可以,小编就在这里出现了这样的问题,百度了好久,也没解决,最后发现换了测试数据就可以了,测试数据里面不要出现测试二字。

Last modification:September 14th, 2018 at 09:07 pm
If you think my article is useful to you, please feel free to appreciate