邮箱绑定

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;


require './PHPmailer-master/src/Exception.php';
require './PHPmailer-master//src/PHPMailer.php';
require './PHPmailer-master//src/SMTP.php';
class Sendmail extends Controller
{
    public function sendmail(){
        
    $email=Request::param('email');
    $user_id=Session::get('user_id');
    $time=time()+15;
    $sign= $this->sign();
    //echo $sign;
    $mail = new PHPMailer(true);                              // Passing `true` enables exceptions
try {
    //服务器配置
    $mail->CharSet ="UTF-8"; //设定邮件编码
    $mail->SMTPDebug = 0;                        // 调试模式输出
    $mail->isSMTP();                             // 使用SMTP
    $mail->Host = 'smtp.qq.com';                // SMTP服务器
    $mail->SMTPAuth = true;                      // 允许 SMTP 认证
    $mail->Username = '[email protected]';                // SMTP 用户名  即邮箱的用户名
    $mail->Password = 'iicuuosezlgfeiff';             // SMTP 密码  部分邮箱是授权码(例如163邮箱)
    $mail->SMTPSecure = 'ssl';                    // 允许 TLS 或者ssl协议
    $mail->Port = 465;                            // 服务器端口 25 或者465 具体要看邮箱服务器支持


    $mail->setFrom('[email protected]', 'Mailer');  //发件人
    $mail->addAddress($email, 'Joe');  // 收件人
    //$mail->addAddress('[email protected]');  // 可添加多个收件人
    $mail->addReplyTo('[email protected]', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
    //$mail->addCC('[email protected]'); //抄送
    //$mail->addBCC('[email protected]'); //密送


    //发送附件
    // $mail->addAttachment('../xy.zip');         // 添加附件
    // $mail->addAttachment('../thumb-1.jpg', 'new.jpg');    // 发送附件并且重命名


    //Content
    $mail->isHTML(true);                                  // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容
    $mail->Subject = '易易城商城邮箱激活' . time();
    $mail->Body    = "www.xinyiyicheng.com/index/Sendmail/em?email={$email}&user_id={$user_id}&time={$time}&sign={$sign}";
    $mail->AltBody = '';
//uid={$uid}&sign={$sign}&time={$time}
    $mail->send();
    echo '邮件发送成功';
} catch (Exception $e) {
    echo '邮件发送失败: ', $mail->ErrorInfo;
}
        
    }
    
    //更改用邮箱状态的方法
    public function em(){
       //服务器中的密钥
       $secret='2938457489397';
       $email=Request::param('email');
       $user_id=Request::param('user_id');
       $time=Request::param('time');
      
       
       //接受过来的签名
       $sign=Request::param('sign');
       //根据传过来的 user_id 和time 还有服务器中的密钥生成新的签名 做对比
       $newsign=md5($user_id.$secret.$time);
       
       
       if($newsign==$sign){
          // echo'签名正确';
        if($time>time()){
           //echo'还在有效期'; 
        } else{
           echo'已过期,重新生成连接'; die;
            
        }
         
       } else {
          echo'签名失败'; die;
       }
    
       
       
       $data=Db::table('user')->where('user_id',$user_id)->find();
       if($email != $data['user_email']){
           $ud= Db::name('user')
            ->where('user_id', $user_id)
            ->data(['user_email'=>$email,'email'=> 1])
            ->update();
           echo '修改成功';
           
       } else {
            Db::name('user')
            ->where('user_id', $user_id)
            ->data(['email'=> 1])
            ->update();
           echo '绑定成功';
       }
       


       
    }
    
    //生成签名的方法

猜你喜欢

转载自blog.csdn.net/liuyubing2018/article/details/80927387