thinkPHP3.2.3使用163邮箱发送邮件
(一) 前言
第一次写博客,主要就是为了分享一下自己敲代码的一些心得并整理一下自己的知识以便以后查看。
我原来一直在找通过thinkPHP使用QQ邮箱发送邮件的教程,发现最后都卡在邮箱服务器密码这一块,好像是因为没有设SSL,后来我发现用163邮箱很容易实现,最后决定使用163邮箱。
(二) 前期准备
首先得有个163邮箱的账号。注册登录后进入设置开启POP3/SMTP服务器。
需要手机验证,验证后会让你自己输入授权码,记住这个授权码,后面会用到。
如果原来已经开启了而忘记授权码的话可以去手机短信里面翻翻,可能可以找到;或者点击客户端授权码进行重置
(三) 代码部分
PHPMailer下载,下载后把PHPMailer解压放在/ThinkPHP/Library/Vendor目录下
压缩包链接: https://pan.baidu.com/s/1csC9sE 密码: dvf2
config.php 配置:
'MAIL_HOST' =>'smtp.163.com',//smtp服务器的名称 'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证 'MAIL_USERNAME' =>'zha****22@163.com',//发件人的邮箱名 'MAIL_PASSWORD' =>'olagbqsyeyhilcwu',//163邮箱发件人授权密码 'MAIL_FROM' =>'zha****22@163.com',//发件人邮箱地址 'MAIL_FROMNAME'=>'天空还下着雪',//发件人姓名 'MAIL_CHARSET' =>'utf-8',//设置邮件编码 'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件
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()); }
最后在控制器中调用sendMail()即可。