使用phpmailer发送邮件,且需要激活完整代码

1、需要下载phpMail包

2、数据库需要字段为token(邮箱激活码),token_exptime(激活码有效期),status(是否被激活0,1)

//页面 代码,

<body>
<h1>欢迎{$user}登录</h1>
<form action="" method="post" id="form">
<table border='1'>
姓名:<input type="text" name="user" id="user"/><br/>
密码:<input type="password" name="pwd"  id="pwd"/><br/>
确认密码:<input type="password" name="confirmPwd" id="confirmPwd"/><br/>
性别:<input type="radio" value="男" id="sex" name="sex"/><input type="radio" id="sex" value="女" name="sex"/> <br/>
邮箱:<input type="text" name="mail"  id="mail"/>&nbsp;&nbsp;&nbsp; <input type="button" name="confirmMail" id="confirmMail" value="邮箱确认"><br/>
电话号码:<input type="text" name="phone" id="phone" /><br/>
<input type="button" name="sub" id="sub" value="提交"/>
</table>
</form>

<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js">
</script>
<script>

$("#sub").on('click',function(){
  
    var confirmPwd = $("#confirmPwd").val();
    var user       = $("#user").val();
    var pwd        = $("#pwd").val();
    var sex           = $("#sex").val();
    var mail       = $("#mail").val();
    var phone      = $("#phone").val();
    var url           = "__URL__/addUser";
    if(user==''){
        alert("用户名不能为空");        
    }else if(pwd==''){
        alert("密码不能为空");
    }else if(confirmPwd==""){
        alert("确认密码不能为空");
    }else if(pwd!=confirmPwd){
        alert("密码不一致,请重新确认密码");
    }else if(mail==""){
        alert("邮箱地址不能为空");
    }else{
        $.post("__URL__/addUser",{mail:mail,user:user,pwd:pwd,sex:sex,phone:phone},function(data){
            
            if(data==1){
                location.href = '__URL__/index';
            }else{
                alert('注册失败');
            }
            
        },'JSON');
    }
})

</script>
</body>


//控制器代码

    //添加模块,当点击注册时候,调用sendMail方法
    public function addUser(){
        $model = M();
        $phone = $_POST['phone'];
        $user  = $_POST["user"];
        $pwd   = $_POST["pwd"];
        $sex   = $_POST['sex'];
        $mail  = $_POST['mail'];
        
        //定义激活码
        $token = md5($user.$pwd.time());
        $token_exptime = time()+60*60*24;
        
        $where = array(
                'token_exptime' =>$token_exptime,
                'password' => md5($pwd),
                'phone'    => $phone,
                'token'       => $token,
                'mail'     => $mail,
                'name'     => $user,
                'sex'      => $sex,
        );
        
        $add = $model->table('tp_user')->add($where);
        $this->sendMail($mail,$user,$token);
        if($add){
            echo '1';
        }else{
            echo "2";
        }
    }


/sendMail方法,调用think_send_mail方法执行发送邮件
    public function sendMail($mail,$user,$token){
    $body = "亲爱的".$user.":<br/>感谢您在我站注册了新帐号。<br/>请点击链接激活您的帐号。<br/>
    <a href='http://localhost/thinkphp/index.php/Home/Index/update?token=$token' target='_blank'>http://localhost/thinkphp/index.php/Home/Index/update?token=$token</a><br/>如果以上链接无法点击,请将它复制到你的浏览器地址栏中进入访问,该链接24小时内有效。";
        $r = $this->think_send_mail($mail,$user,'欢迎注册',$body);
    }


//发送邮件方法
    public function think_send_mail($to, $name, $subject = '', $body = '', $attachment = null){
            header("Content-Type: text/html; charset=utf-8");
        
            $config = C('THINK_EMAIL');
        
            vendor('PHPMailer.class#phpmailer'); //从PHPMailer目录导class.phpmailer.php类文件
            $mail             = new \PHPMailer(); //PHPMailer对象
            $mail->CharSet    = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
            $mail->IsSMTP();  // 设定使用SMTP服务
            $mail->SMTPDebug  = 1;                     // 关闭SMTP调试功能
            $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能
            $mail->Host       = $config['SMTP_HOST'];  // SMTP 服务器
            $mail->Port       = $config['SMTP_PORT'];  // SMTP服务器的端口号
            $mail->Username   = $config['SMTP_USER'];  // SMTP服务器用户名
            $mail->Password   = $config['SMTP_PASS'];  // SMTP服务器密码
            
            $mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
            $replyEmail       = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];
            $replyName        = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];
            $mail->AddReplyTo($replyEmail, $replyName);
            $mail->Subject    = $subject;
            $mail->AltBody    = "为了查看该邮件,请切换到支持 HTML 的邮件客户端";
            $username ='AAAA';
            $mail->MsgHTML($body);
            $mail->AddAddress($to, '342772383');
            if(is_array($attachment)){ // 添加附件
                foreach ($attachment as $file){
                    is_file($file) && $mail->AddAttachment($file);
                }
            }
            return  $mail->Send() ? true : $mail->ErrorInfo;
    }



//config中 邮件配置

    //邮件配置
        'THINK_EMAIL' => array(
                'SMTP_HOST'   => 'smtp.163.com', //SMTP服务器
                'SMTP_PORT'   => '25', //SMTP服务器端口
                'SMTP_USER'   => '1111@163.com', //SMTP服务器用户名
                'SMTP_PASS'   => 'aaa', //SMTP服务器密码
                'FROM_EMAIL'  => '1111@163.com', //发件人EMAIL  和SMTP服务器用户名保持一致
                'FROM_NAME'   => '易享微代', //发件人名称
                'REPLY_EMAIL' => '', //回复EMAIL(留空则为发件人EMAIL)
                'REPLY_NAME'  => 'AAAAA', //回复名称(留空则为发件人名称)
        ),

1、注意  需要把网易邮箱中STMP,POP3开启

2、SMTP服务器用户名需要和发件人EMAIL一致

3、关闭SSL安全认证



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值