Browse Source

改进使用自建代理SMTP发送邮件

master
453530270@qq.com 2 years ago
parent
commit
9d64ef60a2
  1. 90
      app/Common/functions.php
  2. 5
      app/Providers/AppServiceProvider.php
  3. BIN
      resources/lang/lang.rar

90
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')

5
app/Providers/AppServiceProvider.php

@ -1,7 +1,7 @@
<?php
/*
* @Descripttion:
* @version:
* @Descripttion:
* @version:
* @Author: GuaPi
* @Date: 2021-07-29 10:40:49
* @LastEditors: GuaPi
@ -29,7 +29,6 @@ class AppServiceProvider extends ServiceProvider
{
//
}
/**
* Bootstrap any application services.
*

BIN
resources/lang/lang.rar

Binary file not shown.
Loading…
Cancel
Save