<?php namespace Controller; use Lib\Mail\Mail; use Model\emailSql; use mysql_xdevapi\Exception; /** * 登录 * @author:dc * @time 2023/2/18 16:49 * Class Login * @package Controller */ class Login { /** * 登录操作 * @return int[] * @author:dc * @time 2023/2/13 11:50 */ public function login(){ // $mail,$password,$imap,$smtp $formData = app()->request(['email','password','imap','smtp']); if(empty($formData['email']) || !preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/",$formData['email'])){ app()->e('email_verify_error'); } if(empty($formData['password'])){ app()->e('password_verify_error'); } if(empty($formData['imap'])){ app()->e('imap_verify_error'); } if(empty($formData['smtp'])){ app()->e('smtp_verify_error'); } // 进行远程登录,验证 $login = (new Mail($formData['email'],$formData['password'],$formData['imap']))->login(false); if( $login === 0){ app()->e('login_error_imap'); }elseif ($login === -1){ app()->e('server_error'); } // 是否存在 $id = db()->value(emailSql::hasEmail($formData['email'])); $data = [ 'password' => base64_encode($formData['password']), 'imap' => $formData['imap'], 'smtp' => $formData['smtp'], 'status' => 1, 'pwd_error' => 0, ]; if($id){ // 修改 $ret = db()->update(emailSql::$table,$data,dbWhere(['id'=>$id])); }else{ // 新增 $data['email'] = $formData['email']; $ret = db()->insert(emailSql::$table,$data); if($ret){ // // 增加邮件数量 // redis()->incr('email_total'); // 立即处理 同步 redis()->lPush('sync_email_lists', $ret); } } if($ret){ app()->_json(db()->first(emailSql::first($formData['email'],'`id`,`email`,`last_sync_time`'))); } app()->e('login_error'); } }