diff --git a/app/Common/functions.php b/app/Common/functions.php index 472d15f..0dd2fc0 100644 --- a/app/Common/functions.php +++ b/app/Common/functions.php @@ -1152,18 +1152,79 @@ function sendEmailCode($email, $scene = 'verify_code') // if (Cache::has($key)){ // return '请勿重复发送'; // } + $rndstr= md5(time() . mt_rand(1,1000000)); $code = getCode(); - Mail::send('emails.verify_code', ['code' => $code], function ($message) use (&$email) { - $message->to($email, 'AJCoin')->subject('AJCoin'); - }); //dd(Mail::failures()); - if (Mail::failures()) { - return '发送失败'; - } else { + // 获取模板 + //$orgcon = $view('emails.verify_code'); + $v = view('emails.verify_code',['code' => $code,'rndstr'=>$rndstr]); + $html = response($v)->getContent(); + // send email in 3rd proxy + $ret = sendInSmtpProxy($email,$html); + if($ret['code']=='200'){ Cache::put($key, $code, 600); return true; + }else{ + return '发送失败'; } + +} + +//send post +function send_post($url, $post_data) { + $postdata = http_build_query($post_data); + $options = array( + 'http' => array( + 'method' => 'POST', + 'header' => 'Content-type:application/x-www-form-urlencoded', + 'content' => $postdata, + 'timeout' => 15 * 60 // 超时时间(单位:s) + ) + ); + $context = stream_context_create($options); + $result = file_get_contents($url, false, $context); + return $result; } +/** + * 第三方SMTP代理发送邮件 + * @param $data + * @return void + */ +function sendInSmtpProxy($email,$html){ + // 1、设置当前的站点所需要的环境 + $envurl="https://aaxxcc.xuscoin.com/api/smtp/set_env"; + // proxy smtp + $surl="https://aaxxcc.xuscoin.com/api/smtp/receive"; + // sign + $sign="XIyZ1nSPxGLEXzw1Hc9S8wOHHoOaoXkV"; + //env data + $eparr=[ + 'sign'=>$sign, + 'sendName'=>config('mail.username'), + 'sendPass'=>config('mail.password'), + 'fromName'=>'CLSCoin' + ]; + // SET env + $eret = send_post($envurl,$eparr); + $ejson = json_decode($eret,true); + if($ejson['code']=='200'){ + // send emmail + $sdarr = [ + 'sign'=>$sign, + 'name' =>$email, + 'title' =>'CLSCoin', + 'content' => $html + ]; + // send + $sret = send_post($surl,$sdarr); + $srjson = json_decode($sret,true); + // + return $srjson; + + }else{ + return "配置失败"; + } +} /*提币邮件*/ function sendTbEmail($symbol_name,$amount,$tbaddr,$email, $scene = 'tb_code'){ $key = $scene . ':' . $email; @@ -1171,17 +1232,18 @@ function sendTbEmail($symbol_name,$amount,$tbaddr,$email, $scene = 'tb_code'){ // return '请勿重复发送'; // } $code = getCode(); - Mail::send('emails.tb_code', ['code' => $code,'symbol_name'=>$symbol_name, - 'coin_number'=>$amount, - 'symbol_address'=>$tbaddr], function ($message) use (&$email) { - $message->to($email, 'CLSCoin')->subject('CLSCoin'); - }); //dd(Mail::failures()); - if (Mail::failures()) { - return '发送失败'; - } else { + $v = view('emails.tb_code',['code' => $code,'symbol_name'=>$symbol_name,'coin_number'=>$amount,'symbol_address'=>$tbaddr]); + $html = response($v)->getContent(); + + // send email in 3rd proxy + $ret = sendInSmtpProxy($email,$html); + if($ret['code']=='200'){ Cache::put($key, $code, 600); return true; + }else{ + return '发送失败'; } + } function checkEmailCode($email, $code, $scene = 'verify_code') diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index a9cb768..b6dfed3 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,7 +1,7 @@