Thinkphp5.1使用phpmailer发送邮件

首先在站点根目录下使用composer安装

composer require phpmailer/phpmailer

食用方法:

/*
sendEmail(SMTP服务器, 端口, 用户名, 密码, 标题, 发件人姓名, 用于接收错误的$err, ['user_email' => '收件人邮箱','content' => '邮件内容'], 加密方式【ssl/tls/留空不加密】);
不加密的SMTP端口常见为25
ssl加密的SMTP端口常见为465
tls加密的SMTP端口常见为587
成功返回1,失败返回-1,参数不全-2
返回-1时可以通过查看$err获得报错信息
备注:
SMTPOptions中设置了ssl加密忽略证书信息和允许自签名证书,对于某些厂商有用
*/
public static function sendEmail($Host, $Port, $user, $password, $title, $FromName, &$err, $data = [], $SMTPSecure = '') {
        $mail = new phpmailer(); //实例化
        $mail->IsSMTP(); // 启用SMTP
        $mail->Host = $Host; //SMTP服务器 以qq邮箱为例子
        $mail->Port = $Port;  //邮件发送端口
        $mail->SMTPAuth = true;  //启用SMTP认证
        $mail->SMTPSecure = $SMTPSecure;   // 设置安全验证方式为ssl
        $mail->SMTPOptions = array (
		    'ssl' => array(
		    'verify_peer' => false,
		    'verify_peer_name' => false,
		    'allow_self_signed' => true)
		);
        $mail->CharSet = "UTF-8"; //字符集
        //$mail->Encoding = "base64"; //编码方式
        $mail->Username = $user;  //发件人邮箱
        $mail->Password = $password;  //发件人密码 ==>重点:多数网站是授权码
        $mail->Subject = $title; //邮件标题
        $mail->From = $user;  //发件人邮箱
        $mail->FromName = $FromName;  //发件人姓名
        /*
        默认MessageID会带有当前请求的域名,如果不想显示可以进行修改,这里使用Faker生成UUID进行修改:【uuid】@test.com
        $faker = \Faker\Factory::create();
        $mail->MessageID = sprintf('<%[email protected]%s>', $faker->uuid, 'test.com');
        */
        if($data && is_array($data)){
                $mail->AddAddress($data['user_email']); //添加收件人
                $mail->IsHTML(true); //支持html格式内容
                $mail->Body = $data['content']; //邮件主体内容
                if ($mail->Send()) {
                    return 1;
                }else{
                    $err = $mail->ErrorInfo;
                    return -1;
                }
        }
        return -2;
    }