作者 邓超

新增邮箱代理服务器

@@ -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');