1.登陆163邮箱,在首页上找到“设置”。php
2.选择开启的服务,通常都全选,POP3/SMTP/IMAP,开启SMTP服务就得先开通客户受权码。thinkphp
3.点击开通客户受权码,选择开启浏览器
4.须要手机验证码,须要绑定手机号。php框架
5.SMTP服务须要输入客户端受权密码,这个密码就是是你在第三方客户端上的邮箱登陆密码(在后面使用phpmailer发送邮件时会用到),若是在第三方客户端上输入以前的邮箱登陆密码就会出错。服务器
6.设置完客户端受权密码后就成功开通了SMTP服务app
2、首先下载phpmailer压缩包。框架
phpmailer的下载地址PHPMailer。解压以后,里面的许多文件都没有用到,而后再thinkphp5的项目中的extend目录下新建一个phpmailer文件夹,而后把class.phpmailer.PHP和class.smtp.php文件复制到phpmailer目录下。thinkphp5
3、phpmailer的代码实现测试
一、使用phpmailer时,须要用到php的openssl扩展,在php.ini中开启。编码
2.首先注意,thinkphp5中的extend下的扩展类库使用的是命名空间必须在class.phpmailer.php和class.smtp.php最开头加上
以下图:
三、在class.phpmailer.php中的2315行使用到了php的Exception异常类,在thinkphp框架中直接继承,thinkphp找不到Exception因此要修改以下;
四、在使用phpmailer时,实例化PHPMailer(),须要使用命名空间。
这里有一个问题,thinkphp5的扩展类的定义是,类文件命名为:phpmailer.php而不是class.phpmailer.php。因此要把class.phpmailer.php重命名为phpmailer.php。
而后,在控制器中用use引入。
例如在index控制器中调用phpmailer:
4、常见的错误处理
一、浏览器出现以下,说明php中没有开启openssl扩展(去掉php.ini中extension=php_openssl.dll前面的分号(;),记得重启Apache服务)Windows下有时可能会开启不了服务,能够用Windows的服务开启:
SMTP Error: Could not connect to SMTP host. Message could not be sent.Mailer Error: SMTP Error: Could not connect to SMTP host.
二、浏览器中出现以下,说明phpmailer类库中没有没有写命名空间(namespace phpmailer;)
三、浏览器中出现以下,说明class.smtp.php类库中没有没有写命名空间(namespace phpmailer;)
四、浏览器中出现以下,说明在控制器中没有用use(use phpmailer\phpmailer;)引入:
五、浏览器中出现以下,说明thinkphp框架找不到Exception异常类:在Exception前面加上反斜杠"\"(参考上文)