入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

ThinkPHP下SMTP的发送邮件

创建时间:2015-08-08 投稿人: 浏览次数:2131

发送邮件的两个方法,博主已经亲自测试成功

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 ComponentEmail();
        $data["mailto"]  =   "123456@qq,.com"; //收件人
        $data["subject"] =   "欢迎注册网站";    //邮件标题
        $data["body"]    =   "邮件正文内容";    //邮件正文内容
        if($mail->send($data))
           {
                //邮件发送成功...
           }
           else
           {
                //邮件发送失败...
           }

2.类库

a).引入函数库,PHPMailer移动到thinkphp里的libraryVendor
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

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。