本文主要是介绍ThinkPHP下SMTP的发送邮件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
发送邮件的两个方法,博主已经亲自测试成功
1.TP官网方法
(http://www.thinkphp.cn/extend/248.html)
a).引入函数库:Email.class.php放在component文件夹下
b).配置文件:common/Conf/config.php中加入如下:
'SMTP_SERVER' =>'smtp.163.com', //邮件服务器'SMTP_PORT' =>'25', //邮件服务器端口'SMTP_USER_EMAIL' =>'@163.com', //SMTP服务器的用户邮箱(一般发件人也得用这个邮箱)'SMTP_USER'=>'@163.com', //SMTP服务器账户名'SMTP_PWD'=>'授权密码', //SMTP服务器账户密码'SMTP_MAIL_TYPE'=>'HTML', //发送邮件类型:HTML,TXT(注意都是大写)'SMTP_TIME_OUT'=>30, //超时时间'SMTP_AUTH'=>true,
c).实际调用:controller.php,直接可以在控制器中应用,如下
$mail = new \Component\Email();$data['mailto'] = "123456@qq,.com"; //收件人$data['subject'] = '欢迎注册网站'; //邮件标题$data['body'] = "邮件正文内容"; //邮件正文内容if($mail->send($data)){//邮件发送成功...}else{//邮件发送失败...}
2.类库
a).引入函数库,PHPMailer移动到thinkphp里的library\Vendor
b).配置文件,common/Conf/config.php中加入如下:
// // 配置邮件发送服务器'MAIL_HOST' =>'smtp.163.com',//smtp服务器的名称smtp.exmail.qq.com'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证renxiaole66@126.com'MAIL_USERNAME' =>'@163.com',//你的邮箱名'MAIL_FROM' =>'@163.com',//发件人地址'MAIL_FROMNAME'=>'MR.峰',//发件人姓名'MAIL_PASSWORD' =>'授权密码',//邮箱授权密码'MAIL_CHARSET' =>'utf-8',//设置邮件编码'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件
c).引入函数,common/common/function.php,创建此php文件,后边用时框架会自动加载
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') ; //邮箱密码$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());}
d).实际调用:controller.php,直接可以在控制器中应用,如下
if(SendMail("$_POST[user_email]",'欢迎注册网站',"$message")){$this->success('发送成功,请激活后登录',U('login'));}else{$this->error('发送失败');}}else{//add()失败// echo "error";$this->error('注册失败',U('register'));}
注意:
1.在配置邮箱的帐号密码时,密码为SMTP的【授权密码】,与你的登录密码是不一样的,
否则提示: 535 authentication failed
2.必须开启SMTP服务,以163邮箱为例子:
这样的话,用户注册激活,用户找回密码等等,不都能实现了吗?o(∩_∩)o
这篇关于ThinkPHP下SMTP的发送邮件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!