thinkphp5.1在PHP7下使用phpmailer发邮件 说说这个坑!

【1.composer安装phpmailer】
由于我是mac window用户直接百度一下composer安装phpmailer;
mac、linux用户首先cd到thinkphp的根目录、然后在终端输入: composer require phpmailer/phpmailer

【2、设置邮箱】
由于我用的163的邮箱 ,所以我就以163为例。qq邮箱往上有很多例子,我就不重复造轮子了。
1):进入邮箱 打开最上面设置里面 POP3/SMTP服务 、 IMAP/SMTP服务
thinkphp5.1在PHP7下使用phpmailer发邮件 说说这个坑!_第1张图片
2):设置自己的授权码
thinkphp5.1在PHP7下使用phpmailer发邮件 说说这个坑!_第2张图片

【3、编写发送mail类】
在thinkphp extend目录下新建一个 tool 文件夹 存放phpmailer类
thinkphp5.1在PHP7下使用phpmailer发邮件 说说这个坑!_第3张图片
类的代码如下(注意坑!!!!!):

SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        //是否启用smtp
        $mail->isSMTP();
        //是否发送html
        $mail->isHTML(TRUE);
        //设置字符
        $mail->CharSet='UTF-8';
        //启用smtp验证
        $mail->SMTPAuth=TRUE;
        //这里可以填自己的邮箱
        $mail->From='[email protected]';
        //发送者名字
        $mail->FromName='yehua';
        //邮件地址host
        $mail->Host='smtp.163.com';
        //这个是邮箱的账号
        $mail->Username='[email protected]';
        //这里替换成自己的密码
        $mail->Password='************';
        //这个是邮件发送的端口号
        $mail->Port=25;
        //添加对方的地址
        $mail->addAddress($to);
        //发送文本标题
        $mail->Subject='验证码';
        //发送的内容
        $mail->Body='验证码是:'.rand(100000,999999);
        //返回结果
        return($mail->Send());
    }
}

这里要注意$mail->SMTPOptions 这个属性。如果是php5 不会影响这个发送结果。 如果是php7 不添加这个属性。会提示连接smtp 失败!!!!!!!!!研究了两天,特别注意!! ps:密码需要更换成自己的密码

【4、使用该类发送短信】

sendMail('这里填所需要发送的邮箱');
		}
}

解决完毕!!

你可能感兴趣的:(php)