正在显示
1 个修改的文件
包含
39 行增加
和
0 行删除
| @@ -45,8 +45,47 @@ class Login { | @@ -45,8 +45,47 @@ class Login { | ||
| 45 | app()->e('smtp_verify_error'); | 45 | app()->e('smtp_verify_error'); |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | + // 是否是shopk那边已添加的邮箱,进行代理 | ||
| 49 | + $status = file_get_contents('https://oa.shopk.com/fob-check-email/'.$formData['email']); | ||
| 50 | + // 存在 就把服务器替换为代理服务器 | ||
| 51 | + if($status=='exist'){ | ||
| 52 | + /** | ||
| 53 | + * 代理功能 去shopk检查邮件是否被添加到shopk了。 | ||
| 54 | + * 如果添加到shopk了就把请求地址替换成shopk的服务器地址 | ||
| 55 | + * 由shopk代理 | ||
| 56 | + * 避免出现换ip登录的情况而被封号 | ||
| 57 | + */ | ||
| 58 | + $callHost = function (string $host,int $prot){ | ||
| 59 | + $host = parse_url($host); | ||
| 60 | + if(empty($host['host'])){ | ||
| 61 | + $host = $host['path'].':'.$prot; | ||
| 62 | + }else{ | ||
| 63 | + $host = $host['host'].':'.(empty($host['port'])?$prot:$host['port']); | ||
| 64 | + } | ||
| 65 | + return $host; | ||
| 66 | + }; | ||
| 67 | + | ||
| 68 | + $formData['imap'] = $callHost($formData['imap'],993); | ||
| 69 | + $formData['smtp'] = $callHost($formData['smtp'],465); | ||
| 70 | + // 服务器代理到shopk服务器上面 | ||
| 71 | + $proxy = [ | ||
| 72 | + 'imap.gmail.com:993' => '43.154.117.107:10086', | ||
| 73 | + 'smtp.gmail.com:465' => '43.154.117.107:10087' | ||
| 74 | + ]; | ||
| 75 | + // 是否存在代理 | ||
| 76 | + if(empty($proxy[$formData['imap']]) || empty($proxy[$formData['smtp']]) ){ | ||
| 77 | + app()->e('请联系站点管理员添加代理'); | ||
| 78 | + } | ||
| 79 | + // 替换为代理服务器 | ||
| 80 | + $formData['imap'] = $proxy[$formData['imap']]; | ||
| 81 | + $formData['smtp'] = $proxy[$formData['smtp']]; | ||
| 82 | + | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + | ||
| 48 | // 进行远程登录,验证 | 86 | // 进行远程登录,验证 |
| 49 | $mailClient = (new Mail($formData['email'],$formData['password'],$formData['imap'])); | 87 | $mailClient = (new Mail($formData['email'],$formData['password'],$formData['imap'])); |
| 88 | + $mailClient->client->debug(true,'echo'); | ||
| 50 | $login = $mailClient->login(false); | 89 | $login = $mailClient->login(false); |
| 51 | if( $login === 0){ | 90 | if( $login === 0){ |
| 52 | app()->e('login_error_imap'); | 91 | app()->e('login_error_imap'); |
-
请 注册 或 登录 后发表评论