thinkPHP3.2.3发送邮件
(一) 前期准备
首先得有个163邮箱的账号。注册登录后进入设置开启POP3/SMTP服务器。
需要手机验证,验证后会让你自己输入授权码,记住这个授权码,后面会用到。
如果原来已经开启了而忘记授权码的话可以去手机短信里面翻翻,可能可以找到;或者点击客户端授权码进行重置
(三) 代码部分
PHPMailer下载,下载后把PHPMailer解压放在/ThinkPHP/Library/Vendor目录下
链接:https://pan.baidu.com/s/1BnmGb5NAUems6Wu55mSbDg
提取码:9r3v
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公共函数: 直接放在模块内的 Common文件夹下 如这样 Common/functions.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()); }
控制器调用
public function send(){ if(sendMail('wengzx1294424625@163.com','你好!邮件标题','这是一篇测试邮件正文!')){ echo"<meta charset='utf-8'>"; echo '发送成功!'; } else{ echo '发送失败!'; } }