- 下载PHPMailer
下载链接链接:https://pan.baidu.com/s/1C0D_O3aq08naeb6Sfda4ZA 密码:vv65
最新版的github上也有,不过小编没看懂,只能先用这个版本了。把下载好的包解压之后放在ThinkPHP\Library\Vendor
里面。 在
\Application\Common\Common
里面的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()); }
在配置文件里面写入以下配置
'MAIL_HOST' =>'smtp.126.com',//smtp服务器的名称 'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证 'MAIL_USERNAME' =>'***********@126.com',//发件人的邮箱名 'MAIL_PASSWORD' =>'**********',//163邮箱发件人授权密码 'MAIL_FROM' =>'*******@126.com',//发件人邮箱地址 'MAIL_FROMNAME'=>'小宁博客',//发件人姓名 'MAIL_CHARSET' =>'utf-8',//设置邮件编码 'MAIL_ISHTML' =>TRUE // 是否HTML格式邮件
在控制器里面直接调用局可以了
SendMail('*******@qq.com',"小宁博客","欢迎来到小宁博客");
注意:可以通过$mail->ErrorInfo
来显示错误,如果出现SMTP Error: data not accepted,证明你的测试数据不可以,小编就在这里出现了这样的问题,百度了好久,也没解决,最后发现换了测试数据就可以了,测试数据里面不要出现测试
二字。