1
This commit is contained in:
@@ -14,6 +14,7 @@ use think\Validate;
|
|||||||
class Article extends Controller {
|
class Article extends Controller {
|
||||||
|
|
||||||
protected $article_obj = '';
|
protected $article_obj = '';
|
||||||
|
protected $country_obj = '';
|
||||||
protected $user_obj = '';
|
protected $user_obj = '';
|
||||||
protected $user_act_obj = '';
|
protected $user_act_obj = '';
|
||||||
protected $journal_obj = '';
|
protected $journal_obj = '';
|
||||||
@@ -44,6 +45,7 @@ class Article extends Controller {
|
|||||||
public function __construct(\think\Request $request = null) {
|
public function __construct(\think\Request $request = null) {
|
||||||
parent::__construct($request);
|
parent::__construct($request);
|
||||||
$this->user_obj = Db::name('user');
|
$this->user_obj = Db::name('user');
|
||||||
|
$this->country_obj = Db::name('country');
|
||||||
$this->user_act_obj = Db::name('user_act');
|
$this->user_act_obj = Db::name('user_act');
|
||||||
$this->article_obj = Db::name('article');
|
$this->article_obj = Db::name('article');
|
||||||
$this->journal_obj = Db::name('journal');
|
$this->journal_obj = Db::name('journal');
|
||||||
@@ -313,14 +315,14 @@ class Article extends Controller {
|
|||||||
// $suggest = $lastbean['content'];
|
// $suggest = $lastbean['content'];
|
||||||
// }
|
// }
|
||||||
//查询审稿人审稿建议
|
//查询审稿人审稿建议
|
||||||
if($article_res['state']==4){
|
// if($article_res['state']==4){
|
||||||
$suggest = $this->article_reviewer_obj->field('t_article_reviewer.*,t_article_reviewer_question.qu9_contents,t_article_reviewer_question.qu10_contents,t_article_reviewer_question.qu11_contents,t_article_reviewer_question.qu12_contents,t_article_reviewer_question.qu13_contents,t_article_reviewer_question.qu14_contents,t_article_reviewer_question.qu15_contents,t_article_reviewer_question.comments comments')
|
$suggest = $this->article_reviewer_obj->field('t_article_reviewer.*,t_article_reviewer_question.qu9_contents,t_article_reviewer_question.qu10_contents,t_article_reviewer_question.qu11_contents,t_article_reviewer_question.qu12_contents,t_article_reviewer_question.qu13_contents,t_article_reviewer_question.qu14_contents,t_article_reviewer_question.qu15_contents,t_article_reviewer_question.comments comments')
|
||||||
->join('t_article_reviewer_question','t_article_reviewer.art_rev_id=t_article_reviewer_question.art_rev_id','left')
|
->join('t_article_reviewer_question','t_article_reviewer.art_rev_id=t_article_reviewer_question.art_rev_id','left')
|
||||||
->where('t_article_reviewer.state','<',4)
|
->where('t_article_reviewer.state','<',4)
|
||||||
->where('t_article_reviewer.state','>',0)
|
->where('t_article_reviewer.state','>',0)
|
||||||
->where('t_article_reviewer.article_id',$article_res['article_id'])
|
->where('t_article_reviewer.article_id',$article_res['article_id'])
|
||||||
->select();
|
->select();
|
||||||
}
|
// }
|
||||||
|
|
||||||
//查询major信息
|
//查询major信息
|
||||||
// $major_data = [];
|
// $major_data = [];
|
||||||
@@ -1352,9 +1354,9 @@ class Article extends Controller {
|
|||||||
. ' in the journal '.$journal_info['title'].'. <br>';
|
. ' in the journal '.$journal_info['title'].'. <br>';
|
||||||
$tt .= 'Please bring into our knowledge if there is any potential Conflict of Interest. If you agree to review this manuscript, we ask you to complete your review and submit it by submission system within 14 days of receipt of the manuscript.<br><br>';
|
$tt .= 'Please bring into our knowledge if there is any potential Conflict of Interest. If you agree to review this manuscript, we ask you to complete your review and submit it by submission system within 14 days of receipt of the manuscript.<br><br>';
|
||||||
$tt .= 'Thank you for your consideration.<br> Look forward for your reply.<br>';
|
$tt .= 'Thank you for your consideration.<br> Look forward for your reply.<br>';
|
||||||
$tt .= '<a href="'.$this->creatLoginUrlForreviewer($reviewer_info,$res).'">Click here to review the article</a><br>';
|
$tt .= '<a href="'.$this->creatLoginUrlForreviewer($reviewer_info,$res).'">Click here to accept the invitation to review</a><br>';
|
||||||
// $tt .= '<a href="https://submission.tmrjournals.com/">Click here to review the article</a><br>';
|
// $tt .= '<a href="https://submission.tmrjournals.com/">Click here to review the article</a><br>';
|
||||||
$tt .= '<a href="'.$this->creatRejectUrlForReviewer($reviewer_info, $res).'">Click on the link to reject the review of this manuscript</a><br>';
|
$tt .= '<a href="'.$this->creatRejectUrlForReviewer($reviewer_info, $res).'">Click here to decline the invitation to review</a><br>';
|
||||||
$tt .= 'Your username:'.$reviewer_info['account'].'<br><br>';
|
$tt .= 'Your username:'.$reviewer_info['account'].'<br><br>';
|
||||||
$tt .= 'Your original password:123456qwe, if you have reset the password, please login with the new one or click the "<a href="https://submission.tmrjournals.com/retrieve">forgot password</a>".<br>';
|
$tt .= 'Your original password:123456qwe, if you have reset the password, please login with the new one or click the "<a href="https://submission.tmrjournals.com/retrieve">forgot password</a>".<br>';
|
||||||
$tt .= 'Sincerely,<br>Editorial Office<br>';
|
$tt .= 'Sincerely,<br>Editorial Office<br>';
|
||||||
@@ -1627,6 +1629,7 @@ class Article extends Controller {
|
|||||||
|
|
||||||
if ($res && $res_author && $transr && $res_file1 && $res_file2 && $res_file3 && $res_file4 && $res_log && $res_msg && $recommend_res) {
|
if ($res && $res_author && $transr && $res_file1 && $res_file2 && $res_file3 && $res_file4 && $res_log && $res_msg && $recommend_res) {
|
||||||
Db::commit();
|
Db::commit();
|
||||||
|
$this->ai_scor($res);
|
||||||
return json(['code' => 0]);
|
return json(['code' => 0]);
|
||||||
} else {
|
} else {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
@@ -1634,6 +1637,112 @@ class Article extends Controller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function ffff(){
|
||||||
|
$data = $this->request->post();
|
||||||
|
$this->ai_scor($data['article_id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 人工智能打分
|
||||||
|
*/
|
||||||
|
public function ai_scor($article_id){
|
||||||
|
$article_info = $this->article_obj->where('article_id',$article_id)->find();
|
||||||
|
$files = $this->article_file_obj->where('article_id',$article_id)->where('type_name','manuscirpt')
|
||||||
|
->order('ctime desc')
|
||||||
|
->limit(1)
|
||||||
|
->select();
|
||||||
|
$user_info = $this->user_obj->where('user_id',$article_info['user_id'])->find();
|
||||||
|
$fen = 0;
|
||||||
|
//h指数分数
|
||||||
|
$h_fen = 0;
|
||||||
|
if($user_info['google_index']>=20){
|
||||||
|
$h_fen = 4;
|
||||||
|
}elseif($user_info['google_index']>=6){
|
||||||
|
$h_fen = 3;
|
||||||
|
}elseif($user_info['google_index']>=2){
|
||||||
|
$h_fen = 1;
|
||||||
|
}else{
|
||||||
|
$h_fen = 0;
|
||||||
|
}
|
||||||
|
$fen += $h_fen;
|
||||||
|
//图表
|
||||||
|
$b_fen = 0;
|
||||||
|
$p_num = 0;
|
||||||
|
$url = "http://ts.tmrjournals.com/api/typeset/readPic";
|
||||||
|
$program['fileRoute'] = "https://submission.tmrjournals.com/public/" . $files[0]['file_url'];
|
||||||
|
$res = object_to_array(json_decode(myPost($url, $program)));
|
||||||
|
$wp = $res['data'];
|
||||||
|
|
||||||
|
$pics = $this->article_file_obj->where('article_id',$article_id)->where('type_name','picturesAndTables')->select();
|
||||||
|
$np = 0;
|
||||||
|
foreach($pics as $v){
|
||||||
|
$ext = substr(strrchr($v['file_url'],'.'),1);
|
||||||
|
if($ext=='zip'){
|
||||||
|
$cn = $this->readZip(ROOT_PATH . "public".DS.$v['file_url']);
|
||||||
|
$np += $cn;
|
||||||
|
}else{
|
||||||
|
$np++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$p_num = $wp>$np?$wp:$np;
|
||||||
|
|
||||||
|
if($p_num>3){
|
||||||
|
$b_fen = 2;
|
||||||
|
}elseif($p_num>=1){
|
||||||
|
$b_fen = 1;
|
||||||
|
}else{
|
||||||
|
$b_fen = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$fen += $b_fen;
|
||||||
|
//国家
|
||||||
|
$c_fen = 0;
|
||||||
|
$author = $this->article_author_obj->where('article_id',$article_id)->where('is_report',1)->find();
|
||||||
|
if($author['country']!=""){
|
||||||
|
$coun = $this->country_obj->where('en_name',$author['country'])->find();
|
||||||
|
if($coun&&$coun['is_hot']==1){
|
||||||
|
$c_fen = 1;
|
||||||
|
$fen+=1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//单位
|
||||||
|
$dw_fen = 0;
|
||||||
|
|
||||||
|
|
||||||
|
//领域
|
||||||
|
$ly_fen = 0;
|
||||||
|
$m = $this->major_obj->where('major_id',$article_info['major_id'])->find();
|
||||||
|
if($m['is_hot']==1){
|
||||||
|
$ly_fen = 1;
|
||||||
|
$fen += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//基金
|
||||||
|
$jj_fen = 0;
|
||||||
|
if(strlen($article_info['fund'])>15){
|
||||||
|
$jj_fen = 0.5;
|
||||||
|
$fen += 0.5;
|
||||||
|
}
|
||||||
|
// return $fen;
|
||||||
|
$updata['scoring'] = $fen;
|
||||||
|
$updata['h_fen'] = $h_fen;
|
||||||
|
$updata['b_fen'] = $b_fen;
|
||||||
|
$updata['c_fen'] = $c_fen;
|
||||||
|
$updata['dw_fen'] = $dw_fen;
|
||||||
|
$updata['ly_fen'] = $ly_fen;
|
||||||
|
$updata['jj_fen'] = $jj_fen;
|
||||||
|
|
||||||
|
$this->article_obj->where('article_id',$article_id)->update($updata);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function readZip($file){
|
||||||
|
$zip = new \ZipArchive();
|
||||||
|
if($zip->open($file)===true){
|
||||||
|
return $zip->numFiles;
|
||||||
|
}else{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加推荐审稿人
|
* 添加推荐审稿人
|
||||||
|
|||||||
@@ -660,7 +660,9 @@ class Production extends Controller
|
|||||||
return jsonError($rule->getError());
|
return jsonError($rule->getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$this->production_article_organ_obj->where('p_article_organ_id', $data['p_article_organ_id'])->update(['state' => 1]);
|
$this->production_article_organ_obj->where('p_article_organ_id', $data['p_article_organ_id'])->update(['state' => 1]);
|
||||||
|
$this->production_article_author_to_organ_obj->where('p_article_organ_id',$data['p_article_organ_id'])->update(['state'=>1]);
|
||||||
return jsonSuccess([]);
|
return jsonSuccess([]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1071,8 +1073,8 @@ class Production extends Controller
|
|||||||
//发送邮件
|
//发送邮件
|
||||||
$tt = "Dear Author,<br/><br/>";
|
$tt = "Dear Author,<br/><br/>";
|
||||||
$tt .= "Please confirm proof of your manuscript on the submission website within 48 hours. (https://submission.tmrjournals.com)<br/><br/>";
|
$tt .= "Please confirm proof of your manuscript on the submission website within 48 hours. (https://submission.tmrjournals.com)<br/><br/>";
|
||||||
$tt .= "<a href='https://submission.tmrjournals.com/api/Production/editProofFromEmail/articleId/".$p_info['article_id']."'>Click here to confirm the proof.</a><br/>";
|
// $tt .= "<a href='https://submission.tmrjournals.com/api/Production/editProofFromEmail/articleId/".$p_info['article_id']."'>Click here to confirm the proof.</a><br/>";
|
||||||
$tt .= "<a href='https://submission.tmrjournals.com'>Click here to make changes based on this version.</a><br/><br/>";
|
$tt .= "<a href='https://submission.tmrjournals.com'>Click here to view and confirm the proof.</a><br/><br/>";
|
||||||
$tt .= "If your response is not received, we will regard the author's consent to the version if the time exceeds.<br/><br/>";
|
$tt .= "If your response is not received, we will regard the author's consent to the version if the time exceeds.<br/><br/>";
|
||||||
$tt .= "If you have any questions, please feel free to contact us.<br/>";
|
$tt .= "If you have any questions, please feel free to contact us.<br/>";
|
||||||
$tt .= "Note: Double-check the authors' information carefully to ensure they are correct.";
|
$tt .= "Note: Double-check the authors' information carefully to ensure they are correct.";
|
||||||
|
|||||||
@@ -1758,6 +1758,13 @@ class Reviewer extends Controller
|
|||||||
->count();
|
->count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach($list as $k => $v){
|
||||||
|
$list[$k]['now'] = $this->article_reviewer_obj->where('reviewer_id',$v['user_id'])->where('state',0)->count();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$re['reviewers'] = $list;
|
$re['reviewers'] = $list;
|
||||||
$re['count'] = $count;
|
$re['count'] = $count;
|
||||||
return jsonSuccess($re);
|
return jsonSuccess($re);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ use think\Db;
|
|||||||
use think\captcha;
|
use think\captcha;
|
||||||
use think\Cache;
|
use think\Cache;
|
||||||
use think\Env;
|
use think\Env;
|
||||||
|
use think\Loader;
|
||||||
use think\Queue;
|
use think\Queue;
|
||||||
use think\Validate;
|
use think\Validate;
|
||||||
|
|
||||||
@@ -156,6 +157,7 @@ class User extends Controller
|
|||||||
$data = $this->request->post();
|
$data = $this->request->post();
|
||||||
$rule = new Validate([
|
$rule = new Validate([
|
||||||
'user_id'=>'require',
|
'user_id'=>'require',
|
||||||
|
'realname'=>'require',
|
||||||
'wos_index'=>'require',
|
'wos_index'=>'require',
|
||||||
'google_index'=>'require'
|
'google_index'=>'require'
|
||||||
]);
|
]);
|
||||||
@@ -172,6 +174,8 @@ class User extends Controller
|
|||||||
$updata['google_index'] = $data['google_index'];
|
$updata['google_index'] = $data['google_index'];
|
||||||
$updata['google_time'] = time();
|
$updata['google_time'] = time();
|
||||||
}
|
}
|
||||||
|
$updata['realname'] = trim($data['realname']);
|
||||||
|
$updata['localname'] = trim($data['localname']);
|
||||||
if(count($updata)>0){
|
if(count($updata)>0){
|
||||||
$this->user_obj->where('user_id',$data['user_id'])->update($updata);
|
$this->user_obj->where('user_id',$data['user_id'])->update($updata);
|
||||||
}
|
}
|
||||||
@@ -188,6 +192,7 @@ class User extends Controller
|
|||||||
* @param name:pageIndex type:int require:1 desc:当前页码数
|
* @param name:pageIndex type:int require:1 desc:当前页码数
|
||||||
* @param name:pageSize type:int require:1 desc:单页数据条数
|
* @param name:pageSize type:int require:1 desc:单页数据条数
|
||||||
* @param name:username type:string require:1 desc:用户名或邮箱
|
* @param name:username type:string require:1 desc:用户名或邮箱
|
||||||
|
* @param name:role type:string require:1 desc:0:全部1:editor2:reviewer3:board
|
||||||
*
|
*
|
||||||
* @return users:用户列表#
|
* @return users:用户列表#
|
||||||
* @return count:总数
|
* @return count:总数
|
||||||
@@ -195,17 +200,45 @@ class User extends Controller
|
|||||||
public function getAllUser()
|
public function getAllUser()
|
||||||
{
|
{
|
||||||
$data = $this->request->post();
|
$data = $this->request->post();
|
||||||
|
$rule = new Validate([
|
||||||
|
'pageIndex'=>'require',
|
||||||
|
'pageSize'=>'require',
|
||||||
|
'role'=>'require'
|
||||||
|
]);
|
||||||
|
if(!$rule->check($data)){
|
||||||
|
return jsonError($rule->getError());
|
||||||
|
}
|
||||||
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
|
$limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
|
||||||
$black_list = $this->user_black_obj->where('black_state', 0)->column("user_id");
|
$black_list = $this->user_black_obj->where('black_state', 0)->column("user_id");
|
||||||
$frag = [];
|
$frag = [];
|
||||||
$count = 0;
|
$count = 0;
|
||||||
if ($data['username'] == "") {
|
$where = [];
|
||||||
$frag = $this->user_obj->where('state', 0)->where("user_id", "not in", $black_list)->limit($limit_start, $data['pageSize'])->select();
|
$where['state'] = 0;
|
||||||
$count = $this->user_obj->where('state', 0)->where("user_id", "not in", $black_list)->count();
|
// $where['user_id'] = ['not in',$black_list];
|
||||||
} else {
|
if ($data['username'] != "") {
|
||||||
$frag = $this->user_obj->where('state', 0)->where("user_id", "not in", $black_list)->where("account|email", 'like', '%' . trim($data['username'] . '%'))->limit($limit_start, $data['pageSize'])->select();
|
$where["account|email"] = ['like','%' . trim($data['username'] . '%')];
|
||||||
$count = $this->user_obj->where('state', 0)->where("user_id", "not in", $black_list)->where("account|email", 'like', '%' . trim($data['username'] . '%'))->count();
|
|
||||||
}
|
}
|
||||||
|
if($data['role']==1){
|
||||||
|
$where['type'] = 2;
|
||||||
|
}elseif($data['role']==2){
|
||||||
|
$c = $this->reviewer_to_journal_obj->where('state',0)->column('reviewer_id');
|
||||||
|
$where['user_id'] = ['in',$c];
|
||||||
|
}elseif($data['role']==3){
|
||||||
|
$cc = $this->board_to_journal_obj->where('state',0)->column('user_id');
|
||||||
|
$where['user_id'] = ['in',$cc];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(isset($where['user_id'])){
|
||||||
|
$where['user_id'] = [['not in',$black_list],$where['user_id']];
|
||||||
|
}else{
|
||||||
|
$where['user_id'] = ['not in',$black_list];
|
||||||
|
}
|
||||||
|
|
||||||
|
$frag = $this->user_obj->where($where)->limit($limit_start, $data['pageSize'])->select();
|
||||||
|
$count = $this->user_obj->where($where)->count();
|
||||||
|
|
||||||
|
|
||||||
foreach ($frag as $k => $v) {
|
foreach ($frag as $k => $v) {
|
||||||
$frag[$k]['roles'] = $this->getUserRoles($v['account']);
|
$frag[$k]['roles'] = $this->getUserRoles($v['account']);
|
||||||
}
|
}
|
||||||
@@ -444,6 +477,11 @@ class User extends Controller
|
|||||||
$specials[] = $cache_info;
|
$specials[] = $cache_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//如果是审稿人的,获取期审稿人的附加信息
|
||||||
|
$reviewer_info = $this->user_reviewer_info_obj->where('reviewer_id',$data['user_id'])->where('state',0)->find();
|
||||||
|
if($reviewer_info){
|
||||||
|
$user_info['company'] = $reviewer_info['company'];
|
||||||
|
}
|
||||||
$user_info['specials'] = $specials;
|
$user_info['specials'] = $specials;
|
||||||
$re['user'] = $user_info;
|
$re['user'] = $user_info;
|
||||||
return jsonSuccess($re);
|
return jsonSuccess($re);
|
||||||
@@ -514,6 +552,155 @@ class User extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 谷歌测试
|
||||||
|
*/
|
||||||
|
public function googleTest(){
|
||||||
|
Loader::import("google.google-search-results");
|
||||||
|
Loader::import("google.restclient");
|
||||||
|
// require 'path/to/google-search-results.php';
|
||||||
|
// require 'path/to/restclient.php';
|
||||||
|
|
||||||
|
// $query = [
|
||||||
|
// "engine" => "google_scholar",
|
||||||
|
// "q" => "biology",
|
||||||
|
// ];
|
||||||
|
// $query = [
|
||||||
|
// "engine" => "google_scholar_author",
|
||||||
|
// "author_id" => "YrGbzsEAAAAJ",
|
||||||
|
// ];
|
||||||
|
|
||||||
|
$query = [
|
||||||
|
"engine" => "google_scholar_profiles",
|
||||||
|
"mauthors" => "biol",
|
||||||
|
];
|
||||||
|
|
||||||
|
$search = new \GoogleSearch('7651ca6caf949b0ac6ce28a95f3d2e9d8ee51b024ba7fad86f0298fb84290765');
|
||||||
|
$result = $search->get_json($query);
|
||||||
|
// $organic_results = $result->organic_results;
|
||||||
|
$organic_results = $result;
|
||||||
|
dump($organic_results);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取google学术人物列表
|
||||||
|
*/
|
||||||
|
public function googleGetAuthor(){
|
||||||
|
$data = $this->request->post();
|
||||||
|
$rule = new Validate([
|
||||||
|
'user_id'=>'require'
|
||||||
|
]);
|
||||||
|
if(!$rule->check($data)){
|
||||||
|
return jsonError($rule->getError());
|
||||||
|
}
|
||||||
|
$user_info = $this->user_obj->where('user_id',$data['user_id'])->find();
|
||||||
|
if($user_info['g_author']!=''||$user_info['realname']==''){
|
||||||
|
return jsonError('Google account is tied/Please tied your realname first before proceeding to the next step');
|
||||||
|
}
|
||||||
|
Loader::import("google.google-search-results");
|
||||||
|
Loader::import("google.restclient");
|
||||||
|
|
||||||
|
$query = [
|
||||||
|
"engine" => "google_scholar_profiles",
|
||||||
|
"mauthors" => $user_info['realname'],
|
||||||
|
];
|
||||||
|
|
||||||
|
$search = new \GoogleSearch('7651ca6caf949b0ac6ce28a95f3d2e9d8ee51b024ba7fad86f0298fb84290765');
|
||||||
|
$result = $search->get_json($query);
|
||||||
|
$organic_results = object_to_array($result);
|
||||||
|
|
||||||
|
if(isset($organic_results['profiles'])){
|
||||||
|
$re['authors'] = $organic_results['profiles'];
|
||||||
|
return jsonSuccess($re);
|
||||||
|
}else{
|
||||||
|
return jsonError('no date');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 绑定谷歌用户id
|
||||||
|
*/
|
||||||
|
public function googleBindAuthor(){
|
||||||
|
$data = $this->request->post();
|
||||||
|
$rule = new Validate([
|
||||||
|
'user_id'=>'require',
|
||||||
|
'g_author'=>'require',
|
||||||
|
// 'website'=>'require'
|
||||||
|
]);
|
||||||
|
if(!$rule->check($data)){
|
||||||
|
return jsonError($rule->getError());
|
||||||
|
}
|
||||||
|
// $this->user_obj->where('user_id',$data['user_id'])->update(['g_author'=>trim($data['g_author']),'g_website'=>trim($data['website'])]);
|
||||||
|
$this->user_obj->where('user_id',$data['user_id'])->update(['g_author'=>trim($data['g_author'])]);
|
||||||
|
//绑定完成后自动获取指数
|
||||||
|
Loader::import("google.google-search-results");
|
||||||
|
Loader::import("google.restclient");
|
||||||
|
|
||||||
|
$query = [
|
||||||
|
"engine" => "google_scholar_author",
|
||||||
|
"author_id" => $data['g_author']
|
||||||
|
];
|
||||||
|
|
||||||
|
$search = new \GoogleSearch('7651ca6caf949b0ac6ce28a95f3d2e9d8ee51b024ba7fad86f0298fb84290765');
|
||||||
|
$result = $search->get_json($query);
|
||||||
|
$organic_results = object_to_array($result);
|
||||||
|
$h_index= 0;
|
||||||
|
// if(isset($organic_results['cited_by']['table']['h_index'])){
|
||||||
|
$h_index = $organic_results['cited_by']['table'][1]['h_index']['all'];
|
||||||
|
// }else{
|
||||||
|
// $h_index = $organic_results['cited_by']['table']['indice_h']['all'];
|
||||||
|
// }
|
||||||
|
|
||||||
|
$updata['google_index'] = $h_index;
|
||||||
|
$updata['google_time'] = time();
|
||||||
|
$this->user_obj->where('user_id',$data['user_id'])->update($updata);
|
||||||
|
|
||||||
|
|
||||||
|
return jsonSuccess($organic_results);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取H指数
|
||||||
|
*/
|
||||||
|
public function googleGetIndex(){
|
||||||
|
$data = $this->request->post();
|
||||||
|
$rule = new Validate([
|
||||||
|
'user_id'=>'require'
|
||||||
|
]);
|
||||||
|
if(!$rule->check($data)){
|
||||||
|
return jsonError($rule->getError());
|
||||||
|
}
|
||||||
|
$user_info = $this->user_obj->where('user_id',$data['user_id'])->find();
|
||||||
|
if($user_info['google_time']>strtotime('-1 year')){
|
||||||
|
return jsonError('The time interval obtained is one year');
|
||||||
|
}
|
||||||
|
if($user_info['g_author']==''){
|
||||||
|
return jsonError('google_id is null , please bind google_id before the request.');
|
||||||
|
}
|
||||||
|
Loader::import("google.google-search-results");
|
||||||
|
Loader::import("google.restclient");
|
||||||
|
|
||||||
|
$query = [
|
||||||
|
"engine" => "google_scholar_author",
|
||||||
|
"author_id" => $user_info['g_author']
|
||||||
|
];
|
||||||
|
|
||||||
|
$search = new \GoogleSearch('7651ca6caf949b0ac6ce28a95f3d2e9d8ee51b024ba7fad86f0298fb84290765');
|
||||||
|
$result = $search->get_json($query);
|
||||||
|
$organic_results = object_to_array($result);
|
||||||
|
|
||||||
|
$h_index= 0;
|
||||||
|
// if(isset($organic_results['cited_by']['table']['h_index'])){
|
||||||
|
$h_index = $organic_results['cited_by']['table'][1]['h_index']['all'];
|
||||||
|
// }else{
|
||||||
|
// $h_index = $organic_results['cited_by']['table']['indice_h']['all'];
|
||||||
|
// }
|
||||||
|
|
||||||
|
$updata['google_index'] = $h_index;
|
||||||
|
$updata['google_time'] = time();
|
||||||
|
$this->user_obj->where('user_id',$data['user_id'])->update($updata);
|
||||||
|
return jsonSuccess($organic_results);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @title 审稿系统登录功能
|
* @title 审稿系统登录功能
|
||||||
|
|||||||
@@ -78,16 +78,18 @@ function sendEmail($email = '', $title = '', $from_name = '', $content = '', $me
|
|||||||
$mail->msgHTML($content);
|
$mail->msgHTML($content);
|
||||||
//Replace the plain text body with one created manually
|
//Replace the plain text body with one created manually
|
||||||
$mail->AltBody = '';
|
$mail->AltBody = '';
|
||||||
// if (is_array($attachmentFile)) {
|
if (is_array($attachmentFile)) {
|
||||||
// for ($i = 0; $i < count($attachmentFile); $i++) {
|
for ($i = 0; $i < count($attachmentFile); $i++) {
|
||||||
// $mail->addAttachment($attachmentFile[$i], 'thanks' . $i.'.jpg'); //这里可以是多维数组,然后循环附件的文件和名称
|
if($attachmentFile[$i]!=''){
|
||||||
// }
|
$mail->addAttachment($attachmentFile[$i],substr($attachmentFile[$i],strrpos($attachmentFile[$i],DS)+1)); //这里可以是多维数组,然后循环附件的文件和名称
|
||||||
// } else {
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if ($attachmentFile != '') {
|
if ($attachmentFile != '') {
|
||||||
//Attach an image file
|
//Attach an image file
|
||||||
$mail->addAttachment($attachmentFile, substr($attachmentFile,strrpos($attachmentFile,DS)+1));
|
$mail->addAttachment($attachmentFile, substr($attachmentFile,strrpos($attachmentFile,DS)+1));
|
||||||
}
|
}
|
||||||
// }
|
}
|
||||||
//send the message, check for errors
|
//send the message, check for errors
|
||||||
if (!$mail->send()) {
|
if (!$mail->send()) {
|
||||||
$status = 0;
|
$status = 0;
|
||||||
|
|||||||
@@ -22,7 +22,8 @@
|
|||||||
"phpmailer/phpmailer": "^6.1",
|
"phpmailer/phpmailer": "^6.1",
|
||||||
"tecnickcom/tcpdf": "^6.3",
|
"tecnickcom/tcpdf": "^6.3",
|
||||||
"weiwei/api-doc": "^1.6",
|
"weiwei/api-doc": "^1.6",
|
||||||
"topthink/think-queue": "1.1.4"
|
"topthink/think-queue": "1.1.4",
|
||||||
|
"phpoffice/phpword": "^1.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|||||||
@@ -1038,10 +1038,6 @@ class Query
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function close(){
|
|
||||||
return $this->connection->close();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 指定OR查询条件
|
* 指定OR查询条件
|
||||||
* @access public
|
* @access public
|
||||||
|
|||||||
@@ -180,8 +180,7 @@ class Windows extends Pipes
|
|||||||
|
|
||||||
$this->unblock();
|
$this->unblock();
|
||||||
|
|
||||||
// $r = null !== $this->input ? ['input' => $this->input] : null;
|
$r = null !== $this->input ? ['input' => $this->input] : null;
|
||||||
$r = null !== $this->input ? ['input' => $this->input] : [];
|
|
||||||
$w = isset($this->pipes[0]) ? [$this->pipes[0]] : null;
|
$w = isset($this->pipes[0]) ? [$this->pipes[0]] : null;
|
||||||
$e = null;
|
$e = null;
|
||||||
|
|
||||||
|
|||||||
6
vendor/composer/ClassLoader.php
vendored
6
vendor/composer/ClassLoader.php
vendored
@@ -37,8 +37,8 @@ namespace Composer\Autoload;
|
|||||||
*
|
*
|
||||||
* @author Fabien Potencier <fabien@symfony.com>
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||||
* @see http://www.php-fig.org/psr/psr-0/
|
* @see https://www.php-fig.org/psr/psr-0/
|
||||||
* @see http://www.php-fig.org/psr/psr-4/
|
* @see https://www.php-fig.org/psr/psr-4/
|
||||||
*/
|
*/
|
||||||
class ClassLoader
|
class ClassLoader
|
||||||
{
|
{
|
||||||
@@ -60,7 +60,7 @@ class ClassLoader
|
|||||||
public function getPrefixes()
|
public function getPrefixes()
|
||||||
{
|
{
|
||||||
if (!empty($this->prefixesPsr0)) {
|
if (!empty($this->prefixesPsr0)) {
|
||||||
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
||||||
}
|
}
|
||||||
|
|
||||||
return array();
|
return array();
|
||||||
|
|||||||
22
vendor/composer/InstalledVersions.php
vendored
22
vendor/composer/InstalledVersions.php
vendored
@@ -19,11 +19,20 @@ private static $installed = array (
|
|||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => '2c373f1587474940063688399f43ef8f93fed848',
|
'reference' => '0a92e69b830447e8acf0e4eb2b0aef31ebb76d30',
|
||||||
'name' => 'topthink/think',
|
'name' => 'topthink/think',
|
||||||
),
|
),
|
||||||
'versions' =>
|
'versions' =>
|
||||||
array (
|
array (
|
||||||
|
'laminas/laminas-escaper' =>
|
||||||
|
array (
|
||||||
|
'pretty_version' => '2.9.0',
|
||||||
|
'version' => '2.9.0.0',
|
||||||
|
'aliases' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
|
'reference' => '891ad70986729e20ed2e86355fcf93c9dc238a5f',
|
||||||
|
),
|
||||||
'phpmailer/phpmailer' =>
|
'phpmailer/phpmailer' =>
|
||||||
array (
|
array (
|
||||||
'pretty_version' => 'v6.6.0',
|
'pretty_version' => 'v6.6.0',
|
||||||
@@ -33,6 +42,15 @@ private static $installed = array (
|
|||||||
),
|
),
|
||||||
'reference' => 'e43bac82edc26ca04b36143a48bde1c051cfd5b1',
|
'reference' => 'e43bac82edc26ca04b36143a48bde1c051cfd5b1',
|
||||||
),
|
),
|
||||||
|
'phpoffice/phpword' =>
|
||||||
|
array (
|
||||||
|
'pretty_version' => '1.0.0',
|
||||||
|
'version' => '1.0.0.0',
|
||||||
|
'aliases' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
|
'reference' => '8521612b39edeec9055d3688ad555342a40857dd',
|
||||||
|
),
|
||||||
'tecnickcom/tcpdf' =>
|
'tecnickcom/tcpdf' =>
|
||||||
array (
|
array (
|
||||||
'pretty_version' => '6.4.4',
|
'pretty_version' => '6.4.4',
|
||||||
@@ -58,7 +76,7 @@ private static $installed = array (
|
|||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => '2c373f1587474940063688399f43ef8f93fed848',
|
'reference' => '0a92e69b830447e8acf0e4eb2b0aef31ebb76d30',
|
||||||
),
|
),
|
||||||
'topthink/think-captcha' =>
|
'topthink/think-captcha' =>
|
||||||
array (
|
array (
|
||||||
|
|||||||
1
vendor/composer/autoload_classmap.php
vendored
1
vendor/composer/autoload_classmap.php
vendored
@@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
|
|||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
|
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
||||||
'Datamatrix' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
|
'Datamatrix' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
|
||||||
'PDF417' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/pdf417.php',
|
'PDF417' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/pdf417.php',
|
||||||
'QRcode' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/qrcode.php',
|
'QRcode' => $vendorDir . '/tecnickcom/tcpdf/include/barcodes/qrcode.php',
|
||||||
|
|||||||
2
vendor/composer/autoload_files.php
vendored
2
vendor/composer/autoload_files.php
vendored
@@ -8,6 +8,6 @@ $baseDir = dirname($vendorDir);
|
|||||||
return array(
|
return array(
|
||||||
'9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php',
|
'9b552a3cc426e3287cc811caefa3cf53' => $vendorDir . '/topthink/think-helper/src/helper.php',
|
||||||
'1cfd2761b63b0a29ed23657ea394cb2d' => $vendorDir . '/topthink/think-captcha/src/helper.php',
|
'1cfd2761b63b0a29ed23657ea394cb2d' => $vendorDir . '/topthink/think-captcha/src/helper.php',
|
||||||
'ddc3cd2a04224f9638c5d0de6a69c7e3' => $vendorDir . '/topthink/think-migration/src/config.php',
|
|
||||||
'cc56288302d9df745d97c934d6a6e5f0' => $vendorDir . '/topthink/think-queue/src/common.php',
|
'cc56288302d9df745d97c934d6a6e5f0' => $vendorDir . '/topthink/think-queue/src/common.php',
|
||||||
|
'644e9cafc67b331e17cc7661548f33d0' => $vendorDir . '/weiwei/api-doc/src/helper.php',
|
||||||
);
|
);
|
||||||
|
|||||||
11
vendor/composer/autoload_psr4.php
vendored
11
vendor/composer/autoload_psr4.php
vendored
@@ -6,16 +6,13 @@ $vendorDir = dirname(dirname(__FILE__));
|
|||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'think\\worker\\' => array($vendorDir . '/topthink/think-worker/src'),
|
|
||||||
'think\\oracle\\' => array($vendorDir . '/topthink/think-oracle/src'),
|
|
||||||
'think\\mongo\\' => array($vendorDir . '/topthink/think-mongo/src'),
|
|
||||||
'think\\migration\\' => array($vendorDir . '/topthink/think-migration/src'),
|
|
||||||
'think\\helper\\' => array($vendorDir . '/topthink/think-helper/src'),
|
'think\\helper\\' => array($vendorDir . '/topthink/think-helper/src'),
|
||||||
'think\\composer\\' => array($vendorDir . '/topthink/think-installer/src'),
|
'think\\composer\\' => array($vendorDir . '/topthink/think-installer/src'),
|
||||||
'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'),
|
'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'),
|
||||||
'think\\' => array($baseDir . '/thinkphp/library/think', $vendorDir . '/topthink/think-image/src', $vendorDir . '/topthink/think-queue/src'),
|
'think\\' => array($baseDir . '/thinkphp/library/think', $vendorDir . '/topthink/think-queue/src'),
|
||||||
'app\\' => array($baseDir . '/application'),
|
'app\\' => array($baseDir . '/application'),
|
||||||
'Workerman\\' => array($vendorDir . '/workerman/workerman'),
|
'PhpOffice\\PhpWord\\' => array($vendorDir . '/phpoffice/phpword/src/PhpWord'),
|
||||||
'Phinx\\' => array($vendorDir . '/topthink/think-migration/phinx/src/Phinx'),
|
|
||||||
'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'),
|
'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'),
|
||||||
|
'Laminas\\Escaper\\' => array($vendorDir . '/laminas/laminas-escaper/src'),
|
||||||
|
'Api\\Doc\\' => array($vendorDir . '/weiwei/api-doc/src'),
|
||||||
);
|
);
|
||||||
|
|||||||
4
vendor/composer/autoload_real.php
vendored
4
vendor/composer/autoload_real.php
vendored
@@ -22,13 +22,15 @@ class ComposerAutoloaderInit2bc4f313dba415539e266f7ac2c87dcd
|
|||||||
return self::$loader;
|
return self::$loader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
require __DIR__ . '/platform_check.php';
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInit2bc4f313dba415539e266f7ac2c87dcd', 'loadClassLoader'), true, true);
|
spl_autoload_register(array('ComposerAutoloaderInit2bc4f313dba415539e266f7ac2c87dcd', 'loadClassLoader'), true, true);
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInit2bc4f313dba415539e266f7ac2c87dcd', 'loadClassLoader'));
|
spl_autoload_unregister(array('ComposerAutoloaderInit2bc4f313dba415539e266f7ac2c87dcd', 'loadClassLoader'));
|
||||||
|
|
||||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||||
if ($useStaticLoader) {
|
if ($useStaticLoader) {
|
||||||
require_once __DIR__ . '/autoload_static.php';
|
require __DIR__ . '/autoload_static.php';
|
||||||
|
|
||||||
call_user_func(\Composer\Autoload\ComposerStaticInit2bc4f313dba415539e266f7ac2c87dcd::getInitializer($loader));
|
call_user_func(\Composer\Autoload\ComposerStaticInit2bc4f313dba415539e266f7ac2c87dcd::getInitializer($loader));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
56
vendor/composer/autoload_static.php
vendored
56
vendor/composer/autoload_static.php
vendored
@@ -9,17 +9,13 @@ class ComposerStaticInit2bc4f313dba415539e266f7ac2c87dcd
|
|||||||
public static $files = array (
|
public static $files = array (
|
||||||
'9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php',
|
'9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php',
|
||||||
'1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php',
|
'1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php',
|
||||||
'ddc3cd2a04224f9638c5d0de6a69c7e3' => __DIR__ . '/..' . '/topthink/think-migration/src/config.php',
|
|
||||||
'cc56288302d9df745d97c934d6a6e5f0' => __DIR__ . '/..' . '/topthink/think-queue/src/common.php',
|
'cc56288302d9df745d97c934d6a6e5f0' => __DIR__ . '/..' . '/topthink/think-queue/src/common.php',
|
||||||
|
'644e9cafc67b331e17cc7661548f33d0' => __DIR__ . '/..' . '/weiwei/api-doc/src/helper.php',
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $prefixLengthsPsr4 = array (
|
public static $prefixLengthsPsr4 = array (
|
||||||
't' =>
|
't' =>
|
||||||
array (
|
array (
|
||||||
'think\\worker\\' => 13,
|
|
||||||
'think\\oracle\\' => 13,
|
|
||||||
'think\\mongo\\' => 12,
|
|
||||||
'think\\migration\\' => 16,
|
|
||||||
'think\\helper\\' => 13,
|
'think\\helper\\' => 13,
|
||||||
'think\\composer\\' => 15,
|
'think\\composer\\' => 15,
|
||||||
'think\\captcha\\' => 14,
|
'think\\captcha\\' => 14,
|
||||||
@@ -29,34 +25,22 @@ class ComposerStaticInit2bc4f313dba415539e266f7ac2c87dcd
|
|||||||
array (
|
array (
|
||||||
'app\\' => 4,
|
'app\\' => 4,
|
||||||
),
|
),
|
||||||
'W' =>
|
|
||||||
array (
|
|
||||||
'Workerman\\' => 10,
|
|
||||||
),
|
|
||||||
'P' =>
|
'P' =>
|
||||||
array (
|
array (
|
||||||
'Phinx\\' => 6,
|
'PhpOffice\\PhpWord\\' => 18,
|
||||||
'PHPMailer\\PHPMailer\\' => 20,
|
'PHPMailer\\PHPMailer\\' => 20,
|
||||||
),
|
),
|
||||||
|
'L' =>
|
||||||
|
array (
|
||||||
|
'Laminas\\Escaper\\' => 16,
|
||||||
|
),
|
||||||
|
'A' =>
|
||||||
|
array (
|
||||||
|
'Api\\Doc\\' => 8,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $prefixDirsPsr4 = array (
|
public static $prefixDirsPsr4 = array (
|
||||||
'think\\worker\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/topthink/think-worker/src',
|
|
||||||
),
|
|
||||||
'think\\oracle\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/topthink/think-oracle/src',
|
|
||||||
),
|
|
||||||
'think\\mongo\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/topthink/think-mongo/src',
|
|
||||||
),
|
|
||||||
'think\\migration\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/topthink/think-migration/src',
|
|
||||||
),
|
|
||||||
'think\\helper\\' =>
|
'think\\helper\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/topthink/think-helper/src',
|
0 => __DIR__ . '/..' . '/topthink/think-helper/src',
|
||||||
@@ -72,28 +56,32 @@ class ComposerStaticInit2bc4f313dba415539e266f7ac2c87dcd
|
|||||||
'think\\' =>
|
'think\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/../..' . '/thinkphp/library/think',
|
0 => __DIR__ . '/../..' . '/thinkphp/library/think',
|
||||||
1 => __DIR__ . '/..' . '/topthink/think-image/src',
|
1 => __DIR__ . '/..' . '/topthink/think-queue/src',
|
||||||
2 => __DIR__ . '/..' . '/topthink/think-queue/src',
|
|
||||||
),
|
),
|
||||||
'app\\' =>
|
'app\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/../..' . '/application',
|
0 => __DIR__ . '/../..' . '/application',
|
||||||
),
|
),
|
||||||
'Workerman\\' =>
|
'PhpOffice\\PhpWord\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/workerman/workerman',
|
0 => __DIR__ . '/..' . '/phpoffice/phpword/src/PhpWord',
|
||||||
),
|
|
||||||
'Phinx\\' =>
|
|
||||||
array (
|
|
||||||
0 => __DIR__ . '/..' . '/topthink/think-migration/phinx/src/Phinx',
|
|
||||||
),
|
),
|
||||||
'PHPMailer\\PHPMailer\\' =>
|
'PHPMailer\\PHPMailer\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src',
|
0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src',
|
||||||
),
|
),
|
||||||
|
'Laminas\\Escaper\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/laminas/laminas-escaper/src',
|
||||||
|
),
|
||||||
|
'Api\\Doc\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/weiwei/api-doc/src',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $classMap = array (
|
public static $classMap = array (
|
||||||
|
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
||||||
'Datamatrix' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
|
'Datamatrix' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/datamatrix.php',
|
||||||
'PDF417' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/pdf417.php',
|
'PDF417' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/pdf417.php',
|
||||||
'QRcode' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/qrcode.php',
|
'QRcode' => __DIR__ . '/..' . '/tecnickcom/tcpdf/include/barcodes/qrcode.php',
|
||||||
|
|||||||
674
vendor/composer/installed.json
vendored
674
vendor/composer/installed.json
vendored
@@ -1,44 +1,110 @@
|
|||||||
[
|
|
||||||
{
|
{
|
||||||
"name": "phpmailer/phpmailer",
|
"packages": [
|
||||||
"version": "v6.1.6",
|
{
|
||||||
"version_normalized": "6.1.6.0",
|
"name": "laminas/laminas-escaper",
|
||||||
|
"version": "2.9.0",
|
||||||
|
"version_normalized": "2.9.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
"url": "https://github.com/laminas/laminas-escaper.git",
|
||||||
"reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3"
|
"reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3",
|
"url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/891ad70986729e20ed2e86355fcf93c9dc238a5f",
|
||||||
"reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3",
|
"reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f",
|
||||||
"shasum": "",
|
"shasum": ""
|
||||||
"mirrors": [
|
},
|
||||||
{
|
"require": {
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
"php": "^7.3 || ~8.0.0 || ~8.1.0"
|
||||||
"preferred": true
|
},
|
||||||
|
"conflict": {
|
||||||
|
"zendframework/zend-escaper": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"laminas/laminas-coding-standard": "~2.3.0",
|
||||||
|
"phpunit/phpunit": "^9.3",
|
||||||
|
"psalm/plugin-phpunit": "^0.12.2",
|
||||||
|
"vimeo/psalm": "^3.16"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-iconv": "*",
|
||||||
|
"ext-mbstring": "*"
|
||||||
|
},
|
||||||
|
"time": "2021-09-02T17:10:53+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Laminas\\Escaper\\": "src/"
|
||||||
}
|
}
|
||||||
]
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs",
|
||||||
|
"homepage": "https://laminas.dev",
|
||||||
|
"keywords": [
|
||||||
|
"escaper",
|
||||||
|
"laminas"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"chat": "https://laminas.dev/chat",
|
||||||
|
"docs": "https://docs.laminas.dev/laminas-escaper/",
|
||||||
|
"forum": "https://discourse.laminas.dev",
|
||||||
|
"issues": "https://github.com/laminas/laminas-escaper/issues",
|
||||||
|
"rss": "https://github.com/laminas/laminas-escaper/releases.atom",
|
||||||
|
"source": "https://github.com/laminas/laminas-escaper"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://funding.communitybridge.org/projects/laminas-project",
|
||||||
|
"type": "community_bridge"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"install-path": "../laminas/laminas-escaper"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpmailer/phpmailer",
|
||||||
|
"version": "v6.6.0",
|
||||||
|
"version_normalized": "6.6.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||||
|
"reference": "e43bac82edc26ca04b36143a48bde1c051cfd5b1"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e43bac82edc26ca04b36143a48bde1c051cfd5b1",
|
||||||
|
"reference": "e43bac82edc26ca04b36143a48bde1c051cfd5b1",
|
||||||
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-filter": "*",
|
"ext-filter": "*",
|
||||||
|
"ext-hash": "*",
|
||||||
"php": ">=5.5.0"
|
"php": ">=5.5.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||||
"doctrine/annotations": "^1.2",
|
"doctrine/annotations": "^1.2",
|
||||||
"friendsofphp/php-cs-fixer": "^2.2",
|
"php-parallel-lint/php-console-highlighter": "^0.5.0",
|
||||||
"phpunit/phpunit": "^4.8 || ^5.7"
|
"php-parallel-lint/php-parallel-lint": "^1.3.1",
|
||||||
|
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||||
|
"roave/security-advisories": "dev-latest",
|
||||||
|
"squizlabs/php_codesniffer": "^3.6.2",
|
||||||
|
"yoast/phpunit-polyfills": "^1.0.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-mbstring": "Needed to send email in multibyte encoding charset",
|
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||||
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
||||||
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
||||||
"psr/log": "For optional PSR-3 debug logging",
|
"psr/log": "For optional PSR-3 debug logging",
|
||||||
"stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
|
"stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
|
||||||
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
|
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
|
||||||
},
|
},
|
||||||
"time": "2020-05-27T12:24:03+00:00",
|
"time": "2022-02-28T15:31:21+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -68,38 +134,153 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||||
|
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.0"
|
||||||
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"url": "https://github.com/synchro",
|
"url": "https://github.com/Synchro",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"install-path": "../phpmailer/phpmailer"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "tecnickcom/tcpdf",
|
"name": "phpoffice/phpword",
|
||||||
"version": "6.3.5",
|
"version": "1.0.0",
|
||||||
"version_normalized": "6.3.5.0",
|
"version_normalized": "1.0.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/tecnickcom/TCPDF.git",
|
"url": "https://github.com/PHPOffice/PHPWord.git",
|
||||||
"reference": "19a535eaa7fb1c1cac499109deeb1a7a201b4549"
|
"reference": "8521612b39edeec9055d3688ad555342a40857dd"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/19a535eaa7fb1c1cac499109deeb1a7a201b4549",
|
"url": "https://api.github.com/repos/PHPOffice/PHPWord/zipball/8521612b39edeec9055d3688ad555342a40857dd",
|
||||||
"reference": "19a535eaa7fb1c1cac499109deeb1a7a201b4549",
|
"reference": "8521612b39edeec9055d3688ad555342a40857dd",
|
||||||
"shasum": "",
|
"shasum": ""
|
||||||
"mirrors": [
|
},
|
||||||
{
|
"require": {
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
"ext-dom": "*",
|
||||||
"preferred": true
|
"ext-json": "*",
|
||||||
|
"ext-xml": "*",
|
||||||
|
"laminas/laminas-escaper": ">=2.6",
|
||||||
|
"php": "^7.1|^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"dompdf/dompdf": "^2.0",
|
||||||
|
"ext-gd": "*",
|
||||||
|
"ext-libxml": "*",
|
||||||
|
"ext-zip": "*",
|
||||||
|
"mpdf/mpdf": "^8.1",
|
||||||
|
"php-coveralls/php-coveralls": "^2.5",
|
||||||
|
"phpmd/phpmd": "^2.13",
|
||||||
|
"phpunit/phpunit": ">=7.0",
|
||||||
|
"symfony/process": "^4.4",
|
||||||
|
"tecnickcom/tcpdf": "^6.5"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"dompdf/dompdf": "Allows writing PDF",
|
||||||
|
"ext-gd2": "Allows adding images",
|
||||||
|
"ext-xmlwriter": "Allows writing OOXML and ODF",
|
||||||
|
"ext-xsl": "Allows applying XSL style sheet to headers, to main document part, and to footers of an OOXML template",
|
||||||
|
"ext-zip": "Allows writing OOXML and ODF"
|
||||||
|
},
|
||||||
|
"time": "2022-11-15T20:24:50+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-develop": "0.19-dev"
|
||||||
}
|
}
|
||||||
]
|
},
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"PhpOffice\\PhpWord\\": "src/PhpWord"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL-3.0"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Mark Baker"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Gabriel Bull",
|
||||||
|
"email": "me@gabrielbull.com",
|
||||||
|
"homepage": "http://gabrielbull.com/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Franck Lefevre",
|
||||||
|
"homepage": "https://rootslabs.net/blog/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ivan Lanin",
|
||||||
|
"homepage": "http://ivan.lanin.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Roman Syroeshko",
|
||||||
|
"homepage": "http://ru.linkedin.com/pub/roman-syroeshko/34/a53/994/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Antoine de Troostembergh"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHPWord - A pure PHP library for reading and writing word processing documents (OOXML, ODF, RTF, HTML, PDF)",
|
||||||
|
"homepage": "https://phpword.readthedocs.io/",
|
||||||
|
"keywords": [
|
||||||
|
"ISO IEC 29500",
|
||||||
|
"OOXML",
|
||||||
|
"Office Open XML",
|
||||||
|
"OpenDocument",
|
||||||
|
"OpenXML",
|
||||||
|
"PhpOffice",
|
||||||
|
"PhpWord",
|
||||||
|
"Rich Text Format",
|
||||||
|
"WordprocessingML",
|
||||||
|
"doc",
|
||||||
|
"docx",
|
||||||
|
"html",
|
||||||
|
"odf",
|
||||||
|
"odt",
|
||||||
|
"office",
|
||||||
|
"pdf",
|
||||||
|
"php",
|
||||||
|
"reader",
|
||||||
|
"rtf",
|
||||||
|
"template",
|
||||||
|
"template processor",
|
||||||
|
"word",
|
||||||
|
"writer"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/PHPOffice/PHPWord/issues",
|
||||||
|
"source": "https://github.com/PHPOffice/PHPWord/tree/1.0.0"
|
||||||
|
},
|
||||||
|
"install-path": "../phpoffice/phpword"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "tecnickcom/tcpdf",
|
||||||
|
"version": "6.4.4",
|
||||||
|
"version_normalized": "6.4.4.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/tecnickcom/TCPDF.git",
|
||||||
|
"reference": "42cd0f9786af7e5db4fcedaa66f717b0d0032320"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/42cd0f9786af7e5db4fcedaa66f717b0d0032320",
|
||||||
|
"reference": "42cd0f9786af7e5db4fcedaa66f717b0d0032320",
|
||||||
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.3.0"
|
"php": ">=5.3.0"
|
||||||
},
|
},
|
||||||
"time": "2020-02-14T14:20:12+00:00",
|
"time": "2021-12-31T08:39:24+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -143,28 +324,33 @@
|
|||||||
"pdf",
|
"pdf",
|
||||||
"pdf417",
|
"pdf417",
|
||||||
"qrcode"
|
"qrcode"
|
||||||
]
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/tecnickcom/TCPDF/issues",
|
||||||
|
"source": "https://github.com/tecnickcom/TCPDF/tree/6.4.4"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://www.paypal.com/cgi-bin/webscr?cmd=_donations¤cy_code=GBP&business=paypal@tecnick.com&item_name=donation%20for%20tcpdf%20project",
|
||||||
|
"type": "custom"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"install-path": "../tecnickcom/tcpdf"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "topthink/framework",
|
"name": "topthink/framework",
|
||||||
"version": "v5.0.21",
|
"version": "v5.0.24",
|
||||||
"version_normalized": "5.0.21.0",
|
"version_normalized": "5.0.24.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/top-think/framework.git",
|
"url": "https://github.com/top-think/framework.git",
|
||||||
"reference": "ab826da071a7a47116a7f1d01f72228d6bcf212a"
|
"reference": "c255c22b2f5fa30f320ecf6c1d29f7740eb3e8be"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/top-think/framework/zipball/ab826da071a7a47116a7f1d01f72228d6bcf212a",
|
"url": "https://api.github.com/repos/top-think/framework/zipball/c255c22b2f5fa30f320ecf6c1d29f7740eb3e8be",
|
||||||
"reference": "ab826da071a7a47116a7f1d01f72228d6bcf212a",
|
"reference": "c255c22b2f5fa30f320ecf6c1d29f7740eb3e8be",
|
||||||
"shasum": "",
|
"shasum": ""
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.4.0",
|
"php": ">=5.4.0",
|
||||||
@@ -178,7 +364,7 @@
|
|||||||
"phpunit/phpunit": "4.8.*",
|
"phpunit/phpunit": "4.8.*",
|
||||||
"sebastian/phpcpd": "2.*"
|
"sebastian/phpcpd": "2.*"
|
||||||
},
|
},
|
||||||
"time": "2018-09-04T09:18:48+00:00",
|
"time": "2019-01-11T08:04:58+00:00",
|
||||||
"type": "think-framework",
|
"type": "think-framework",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -202,7 +388,12 @@
|
|||||||
"framework",
|
"framework",
|
||||||
"orm",
|
"orm",
|
||||||
"thinkphp"
|
"thinkphp"
|
||||||
]
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/top-think/framework/issues",
|
||||||
|
"source": "https://github.com/top-think/framework/tree/master"
|
||||||
|
},
|
||||||
|
"install-path": "../../thinkphp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "topthink/think-captcha",
|
"name": "topthink/think-captcha",
|
||||||
@@ -250,86 +441,33 @@
|
|||||||
"email": "448901948@qq.com"
|
"email": "448901948@qq.com"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "captcha package for thinkphp5"
|
"description": "captcha package for thinkphp5",
|
||||||
|
"install-path": "../topthink/think-captcha"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "topthink/think-helper",
|
"name": "topthink/think-helper",
|
||||||
"version": "v1.0.6",
|
"version": "v3.0.0",
|
||||||
"version_normalized": "1.0.6.0",
|
"version_normalized": "3.0.0.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/top-think/think-helper.git",
|
"url": "https://github.com/top-think/think-helper.git",
|
||||||
"reference": "0c99dc625b0d2d4124e1b6ca15a3ad6f0125963f"
|
"reference": "8ba5f66e68106369fcc3211e7d2dbaf7bc9ce455"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/top-think/think-helper/zipball/0c99dc625b0d2d4124e1b6ca15a3ad6f0125963f",
|
"url": "https://api.github.com/repos/top-think/think-helper/zipball/8ba5f66e68106369fcc3211e7d2dbaf7bc9ce455",
|
||||||
"reference": "0c99dc625b0d2d4124e1b6ca15a3ad6f0125963f",
|
"reference": "8ba5f66e68106369fcc3211e7d2dbaf7bc9ce455",
|
||||||
"shasum": "",
|
"shasum": ""
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"time": "2017-04-05T07:15:37+00:00",
|
"time": "2019-03-14T09:28:59+00:00",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
|
||||||
"think\\helper\\": "src"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"src/helper.php"
|
"src/helper.php"
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"Apache-2.0"
|
|
||||||
],
|
],
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "yunwuxin",
|
|
||||||
"email": "448901948@qq.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "The ThinkPHP5 Helper Package"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "topthink/think-image",
|
|
||||||
"version": "v1.0.7",
|
|
||||||
"version_normalized": "1.0.7.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/top-think/think-image.git",
|
|
||||||
"reference": "8586cf47f117481c6d415b20f7dedf62e79d5512"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/top-think/think-image/zipball/8586cf47f117481c6d415b20f7dedf62e79d5512",
|
|
||||||
"reference": "8586cf47f117481c6d415b20f7dedf62e79d5512",
|
|
||||||
"shasum": "",
|
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-gd": "*"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "4.8.*",
|
|
||||||
"topthink/framework": "^5.0"
|
|
||||||
},
|
|
||||||
"time": "2016-09-29T06:05:43+00:00",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"think\\": "src"
|
"think\\helper\\": "src"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
@@ -342,36 +480,35 @@
|
|||||||
"email": "448901948@qq.com"
|
"email": "448901948@qq.com"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "The ThinkPHP5 Image Package"
|
"description": "The ThinkPHP5 Helper Package",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/top-think/think-helper/issues",
|
||||||
|
"source": "https://github.com/top-think/think-helper/tree/3.0"
|
||||||
|
},
|
||||||
|
"install-path": "../topthink/think-helper"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "topthink/think-installer",
|
"name": "topthink/think-installer",
|
||||||
"version": "v1.0.12",
|
"version": "v1.0.14",
|
||||||
"version_normalized": "1.0.12.0",
|
"version_normalized": "1.0.14.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/top-think/think-installer.git",
|
"url": "https://github.com/top-think/think-installer.git",
|
||||||
"reference": "1be326e68f63de4e95977ed50f46ae75f017556d"
|
"reference": "eae1740ac264a55c06134b6685dfb9f837d004d1"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/top-think/think-installer/zipball/1be326e68f63de4e95977ed50f46ae75f017556d",
|
"url": "https://api.github.com/repos/top-think/think-installer/zipball/eae1740ac264a55c06134b6685dfb9f837d004d1",
|
||||||
"reference": "1be326e68f63de4e95977ed50f46ae75f017556d",
|
"reference": "eae1740ac264a55c06134b6685dfb9f837d004d1",
|
||||||
"shasum": "",
|
"shasum": ""
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"composer-plugin-api": "^1.0"
|
"composer-plugin-api": "^1.0||^2.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"composer/composer": "1.0.*@dev"
|
"composer/composer": "^1.0||^2.0"
|
||||||
},
|
},
|
||||||
"time": "2017-05-27T06:58:09+00:00",
|
"time": "2021-03-25T08:34:02+00:00",
|
||||||
"type": "composer-plugin",
|
"type": "composer-plugin",
|
||||||
"extra": {
|
"extra": {
|
||||||
"class": "think\\composer\\Plugin"
|
"class": "think\\composer\\Plugin"
|
||||||
@@ -391,169 +528,33 @@
|
|||||||
"name": "yunwuxin",
|
"name": "yunwuxin",
|
||||||
"email": "448901948@qq.com"
|
"email": "448901948@qq.com"
|
||||||
}
|
}
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "topthink/think-migration",
|
|
||||||
"version": "v1.1.1",
|
|
||||||
"version_normalized": "1.1.1.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/top-think/think-migration.git",
|
|
||||||
"reference": "8e489f8d38a39876690c0e00fcf9a54ae92c4d3d"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/top-think/think-migration/zipball/8e489f8d38a39876690c0e00fcf9a54ae92c4d3d",
|
|
||||||
"reference": "8e489f8d38a39876690c0e00fcf9a54ae92c4d3d",
|
|
||||||
"shasum": "",
|
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"topthink/framework": "^5.0"
|
|
||||||
},
|
|
||||||
"time": "2017-03-31T06:33:23+00:00",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Phinx\\": "phinx/src/Phinx",
|
|
||||||
"think\\migration\\": "src"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"src/config.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"Apache-2.0"
|
|
||||||
],
|
],
|
||||||
"authors": [
|
"support": {
|
||||||
{
|
"issues": "https://github.com/top-think/think-installer/issues",
|
||||||
"name": "yunwuxin",
|
"source": "https://github.com/top-think/think-installer/tree/v1.0.14"
|
||||||
"email": "448901948@qq.com"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
"install-path": "../topthink/think-installer"
|
||||||
"name": "topthink/think-mongo",
|
|
||||||
"version": "v1.8.5",
|
|
||||||
"version_normalized": "1.8.5.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/top-think/think-mongo.git",
|
|
||||||
"reference": "657cc79bd5f090a58b0cc83776073dd69c83a3d1"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/top-think/think-mongo/zipball/657cc79bd5f090a58b0cc83776073dd69c83a3d1",
|
|
||||||
"reference": "657cc79bd5f090a58b0cc83776073dd69c83a3d1",
|
|
||||||
"shasum": "",
|
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"time": "2018-06-03T01:51:27+00:00",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"think\\mongo\\": "src"
|
|
||||||
},
|
|
||||||
"files": []
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"Apache-2.0"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "liu21st",
|
|
||||||
"email": "liu21st@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "mongodb driver for thinkphp5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "topthink/think-oracle",
|
|
||||||
"version": "v1.3",
|
|
||||||
"version_normalized": "1.3.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/top-think/think-oracle.git",
|
|
||||||
"reference": "89a049e876167030b489322f691aed00799fd68f"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/top-think/think-oracle/zipball/89a049e876167030b489322f691aed00799fd68f",
|
|
||||||
"reference": "89a049e876167030b489322f691aed00799fd68f",
|
|
||||||
"shasum": "",
|
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"topthink/framework": "~5.0.17"
|
|
||||||
},
|
|
||||||
"time": "2018-04-14T00:52:34+00:00",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"think\\oracle\\": "src"
|
|
||||||
},
|
|
||||||
"files": []
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"Apache-2.0"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "liu21st",
|
|
||||||
"email": "liu21st@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Oracle driver for thinkphp5",
|
|
||||||
"abandoned": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "topthink/think-queue",
|
"name": "topthink/think-queue",
|
||||||
"version": "v1.1.5",
|
"version": "v1.1.4",
|
||||||
"version_normalized": "1.1.5.0",
|
"version_normalized": "1.1.4.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/top-think/think-queue.git",
|
"url": "https://github.com/top-think/think-queue.git",
|
||||||
"reference": "465320c9cb7811df22d4ff8f29f58ead7d104348"
|
"reference": "ad709611d516e13d6760234bc98e91faa901cae8"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/top-think/think-queue/zipball/465320c9cb7811df22d4ff8f29f58ead7d104348",
|
"url": "https://api.github.com/repos/top-think/think-queue/zipball/ad709611d516e13d6760234bc98e91faa901cae8",
|
||||||
"reference": "465320c9cb7811df22d4ff8f29f58ead7d104348",
|
"reference": "ad709611d516e13d6760234bc98e91faa901cae8",
|
||||||
"shasum": "",
|
"shasum": ""
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"topthink/think-helper": ">=1.0.4",
|
"topthink/think-helper": ">=1.0.4",
|
||||||
"topthink/think-installer": ">=1.0.10"
|
"topthink/think-installer": ">=1.0.10"
|
||||||
},
|
},
|
||||||
"time": "2018-05-04T05:29:53+00:00",
|
"time": "2017-06-25T00:49:56+00:00",
|
||||||
"type": "think-extend",
|
"type": "think-extend",
|
||||||
"extra": {
|
"extra": {
|
||||||
"think-config": {
|
"think-config": {
|
||||||
@@ -562,12 +563,12 @@
|
|||||||
},
|
},
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
|
||||||
"think\\": "src"
|
|
||||||
},
|
|
||||||
"files": [
|
"files": [
|
||||||
"src/common.php"
|
"src/common.php"
|
||||||
]
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"think\\": "src"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
"license": [
|
"license": [
|
||||||
@@ -579,86 +580,46 @@
|
|||||||
"email": "448901948@qq.com"
|
"email": "448901948@qq.com"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "The ThinkPHP5 Queue Package"
|
"description": "The ThinkPHP5 Queue Package",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/top-think/think-queue/issues",
|
||||||
|
"source": "https://github.com/top-think/think-queue/tree/master"
|
||||||
|
},
|
||||||
|
"install-path": "../topthink/think-queue"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "topthink/think-worker",
|
"name": "weiwei/api-doc",
|
||||||
"version": "v1.0.1",
|
"version": "1.6.2",
|
||||||
"version_normalized": "1.0.1.0",
|
"version_normalized": "1.6.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/top-think/think-worker.git",
|
"url": "https://github.com/zhangweiwei0326/api-doc.git",
|
||||||
"reference": "b609ff5e38dbb7194aab027d2b2c6b31a7ed1bd1"
|
"reference": "6c2c3c03ce1139275cc5a5057677175ed8691e19"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/top-think/think-worker/zipball/b609ff5e38dbb7194aab027d2b2c6b31a7ed1bd1",
|
"url": "https://api.github.com/repos/zhangweiwei0326/api-doc/zipball/6c2c3c03ce1139275cc5a5057677175ed8691e19",
|
||||||
"reference": "b609ff5e38dbb7194aab027d2b2c6b31a7ed1bd1",
|
"reference": "6c2c3c03ce1139275cc5a5057677175ed8691e19",
|
||||||
"shasum": "",
|
"shasum": ""
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"workerman/workerman": "^3.3.0"
|
"topthink/think-helper": ">=1.0.4 <=3.0.4",
|
||||||
|
"topthink/think-installer": ">=1.0.10"
|
||||||
|
},
|
||||||
|
"time": "2020-04-02T07:30:02+00:00",
|
||||||
|
"type": "think-extend",
|
||||||
|
"extra": {
|
||||||
|
"think-config": {
|
||||||
|
"doc": "src/config.php"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"time": "2016-10-08T06:07:03+00:00",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
"installation-source": "dist",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"files": [
|
||||||
"think\\worker\\": "src"
|
"src/helper.php"
|
||||||
},
|
|
||||||
"files": []
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"Apache-2.0"
|
|
||||||
],
|
],
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "liu21st",
|
|
||||||
"email": "liu21st@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "workerman extend for thinkphp5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "workerman/workerman",
|
|
||||||
"version": "v3.5.14",
|
|
||||||
"version_normalized": "3.5.14.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/walkor/Workerman.git",
|
|
||||||
"reference": "6d70996b2b4ec94000e807246aca0e861c9601d8"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/walkor/Workerman/zipball/6d70996b2b4ec94000e807246aca0e861c9601d8",
|
|
||||||
"reference": "6d70996b2b4ec94000e807246aca0e861c9601d8",
|
|
||||||
"shasum": "",
|
|
||||||
"mirrors": [
|
|
||||||
{
|
|
||||||
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
|
|
||||||
"preferred": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-event": "For better performance. "
|
|
||||||
},
|
|
||||||
"time": "2018-08-04T12:41:54+00:00",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Workerman\\": "./"
|
"Api\\Doc\\": "src"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
@@ -667,17 +628,18 @@
|
|||||||
],
|
],
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "walkor",
|
"name": "weiwei",
|
||||||
"email": "walkor@workerman.net",
|
"email": "1763692101@qq.com"
|
||||||
"homepage": "http://www.workerman.net",
|
|
||||||
"role": "Developer"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "An asynchronous event driven PHP framework for easily building fast, scalable network applications.",
|
"description": "The ThinkPHP5 Api Doc Package",
|
||||||
"homepage": "http://www.workerman.net",
|
"support": {
|
||||||
"keywords": [
|
"issues": "https://github.com/zhangweiwei0326/api-doc/issues",
|
||||||
"asynchronous",
|
"source": "https://github.com/zhangweiwei0326/api-doc/tree/master"
|
||||||
"event-loop"
|
},
|
||||||
]
|
"install-path": "../weiwei/api-doc"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dev": true,
|
||||||
|
"dev-package-names": []
|
||||||
}
|
}
|
||||||
]
|
|
||||||
|
|||||||
22
vendor/composer/installed.php
vendored
22
vendor/composer/installed.php
vendored
@@ -6,11 +6,20 @@
|
|||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => '2c373f1587474940063688399f43ef8f93fed848',
|
'reference' => '0a92e69b830447e8acf0e4eb2b0aef31ebb76d30',
|
||||||
'name' => 'topthink/think',
|
'name' => 'topthink/think',
|
||||||
),
|
),
|
||||||
'versions' =>
|
'versions' =>
|
||||||
array (
|
array (
|
||||||
|
'laminas/laminas-escaper' =>
|
||||||
|
array (
|
||||||
|
'pretty_version' => '2.9.0',
|
||||||
|
'version' => '2.9.0.0',
|
||||||
|
'aliases' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
|
'reference' => '891ad70986729e20ed2e86355fcf93c9dc238a5f',
|
||||||
|
),
|
||||||
'phpmailer/phpmailer' =>
|
'phpmailer/phpmailer' =>
|
||||||
array (
|
array (
|
||||||
'pretty_version' => 'v6.6.0',
|
'pretty_version' => 'v6.6.0',
|
||||||
@@ -20,6 +29,15 @@
|
|||||||
),
|
),
|
||||||
'reference' => 'e43bac82edc26ca04b36143a48bde1c051cfd5b1',
|
'reference' => 'e43bac82edc26ca04b36143a48bde1c051cfd5b1',
|
||||||
),
|
),
|
||||||
|
'phpoffice/phpword' =>
|
||||||
|
array (
|
||||||
|
'pretty_version' => '1.0.0',
|
||||||
|
'version' => '1.0.0.0',
|
||||||
|
'aliases' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
|
'reference' => '8521612b39edeec9055d3688ad555342a40857dd',
|
||||||
|
),
|
||||||
'tecnickcom/tcpdf' =>
|
'tecnickcom/tcpdf' =>
|
||||||
array (
|
array (
|
||||||
'pretty_version' => '6.4.4',
|
'pretty_version' => '6.4.4',
|
||||||
@@ -45,7 +63,7 @@
|
|||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => '2c373f1587474940063688399f43ef8f93fed848',
|
'reference' => '0a92e69b830447e8acf0e4eb2b0aef31ebb76d30',
|
||||||
),
|
),
|
||||||
'topthink/think-captcha' =>
|
'topthink/think-captcha' =>
|
||||||
array (
|
array (
|
||||||
|
|||||||
4
vendor/composer/platform_check.php
vendored
4
vendor/composer/platform_check.php
vendored
@@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
$issues = array();
|
$issues = array();
|
||||||
|
|
||||||
if (!(PHP_VERSION_ID >= 50500)) {
|
if (!(PHP_VERSION_ID >= 70300)) {
|
||||||
$issues[] = 'Your Composer dependencies require a PHP version ">= 5.5.0". You are running ' . PHP_VERSION . '.';
|
$issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($issues) {
|
if ($issues) {
|
||||||
|
|||||||
5
vendor/laminas/laminas-escaper/.laminas-ci.json
vendored
Normal file
5
vendor/laminas/laminas-escaper/.laminas-ci.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"ignore_php_platform_requirements": {
|
||||||
|
"8.1": true
|
||||||
|
}
|
||||||
|
}
|
||||||
1
vendor/laminas/laminas-escaper/COPYRIGHT.md
vendored
Normal file
1
vendor/laminas/laminas-escaper/COPYRIGHT.md
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC. (https://getlaminas.org/)
|
||||||
26
vendor/laminas/laminas-escaper/LICENSE.md
vendored
Normal file
26
vendor/laminas/laminas-escaper/LICENSE.md
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
- Redistributions of source code must retain the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
- Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
- Neither the name of Laminas Foundation nor the names of its contributors may
|
||||||
|
be used to endorse or promote products derived from this software without
|
||||||
|
specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||||
|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||||
|
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
28
vendor/laminas/laminas-escaper/README.md
vendored
Normal file
28
vendor/laminas/laminas-escaper/README.md
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# laminas-escaper
|
||||||
|
|
||||||
|
[](https://github.com/laminas/laminas-escaper/actions/workflows/continuous-integration.yml)
|
||||||
|
[](https://coveralls.io/github/laminas/laminas-escaper?branch=master)
|
||||||
|
|
||||||
|
The OWASP Top 10 web security risks study lists Cross-Site Scripting (XSS) in
|
||||||
|
second place. PHP’s sole functionality against XSS is limited to two functions
|
||||||
|
of which one is commonly misapplied. Thus, the laminas-escaper component was written.
|
||||||
|
It offers developers a way to escape output and defend from XSS and related
|
||||||
|
vulnerabilities by introducing contextual escaping based on peer-reviewed rules.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Run the following to install this library:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ composer require laminas/laminas-escaper
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Browse the documentation online at https://docs.laminas.dev/laminas-escaper/
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
* [Issues](https://github.com/laminas/laminas-escaper/issues/)
|
||||||
|
* [Chat](https://laminas.dev/chat/)
|
||||||
|
* [Forum](https://discourse.laminas.dev/)
|
||||||
60
vendor/laminas/laminas-escaper/composer.json
vendored
Normal file
60
vendor/laminas/laminas-escaper/composer.json
vendored
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
{
|
||||||
|
"name": "laminas/laminas-escaper",
|
||||||
|
"description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs",
|
||||||
|
"license": "BSD-3-Clause",
|
||||||
|
"keywords": [
|
||||||
|
"laminas",
|
||||||
|
"escaper"
|
||||||
|
],
|
||||||
|
"homepage": "https://laminas.dev",
|
||||||
|
"support": {
|
||||||
|
"docs": "https://docs.laminas.dev/laminas-escaper/",
|
||||||
|
"issues": "https://github.com/laminas/laminas-escaper/issues",
|
||||||
|
"source": "https://github.com/laminas/laminas-escaper",
|
||||||
|
"rss": "https://github.com/laminas/laminas-escaper/releases.atom",
|
||||||
|
"chat": "https://laminas.dev/chat",
|
||||||
|
"forum": "https://discourse.laminas.dev"
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"sort-packages": true
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.3 || ~8.0.0 || ~8.1.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-iconv": "*",
|
||||||
|
"ext-mbstring": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"laminas/laminas-coding-standard": "~2.3.0",
|
||||||
|
"phpunit/phpunit": "^9.3",
|
||||||
|
"psalm/plugin-phpunit": "^0.12.2",
|
||||||
|
"vimeo/psalm": "^3.16"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Laminas\\Escaper\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"psr-4": {
|
||||||
|
"LaminasTest\\Escaper\\": "test/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"check": [
|
||||||
|
"@cs-check",
|
||||||
|
"@test"
|
||||||
|
],
|
||||||
|
"cs-check": "phpcs",
|
||||||
|
"cs-fix": "phpcbf",
|
||||||
|
"static-analysis": "psalm --shepherd --stats",
|
||||||
|
"test": "phpunit --colors=always",
|
||||||
|
"test-coverage": "phpunit --colors=always --coverage-clover clover.xml"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"zendframework/zend-escaper": "*"
|
||||||
|
}
|
||||||
|
}
|
||||||
21
vendor/laminas/laminas-escaper/phpcs.xml.dist
vendored
Normal file
21
vendor/laminas/laminas-escaper/phpcs.xml.dist
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="./vendor/squizlabs/php_codesniffer/phpcs.xsd">
|
||||||
|
|
||||||
|
<arg name="basepath" value="."/>
|
||||||
|
<arg name="cache" value=".phpcs-cache"/>
|
||||||
|
<arg name="colors"/>
|
||||||
|
<arg name="extensions" value="php"/>
|
||||||
|
<arg name="parallel" value="80"/>
|
||||||
|
|
||||||
|
<!-- Show progress -->
|
||||||
|
<arg value="p"/>
|
||||||
|
|
||||||
|
<!-- Paths to check -->
|
||||||
|
<file>src</file>
|
||||||
|
<file>test</file>
|
||||||
|
|
||||||
|
<!-- Include all rules from Laminas Coding Standard -->
|
||||||
|
<rule ref="LaminasCodingStandard"/>
|
||||||
|
</ruleset>
|
||||||
59
vendor/laminas/laminas-escaper/psalm-baseline.xml
vendored
Normal file
59
vendor/laminas/laminas-escaper/psalm-baseline.xml
vendored
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<files psalm-version="3.18.2@19aa905f7c3c7350569999a93c40ae91ae4e1626">
|
||||||
|
<file src="src/Escaper.php">
|
||||||
|
<MixedArgument occurrences="10">
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
</MixedArgument>
|
||||||
|
<MixedArgumentTypeCoercion occurrences="3">
|
||||||
|
<code>$this->cssMatcher</code>
|
||||||
|
<code>$this->htmlAttrMatcher</code>
|
||||||
|
<code>$this->jsMatcher</code>
|
||||||
|
</MixedArgumentTypeCoercion>
|
||||||
|
<MixedAssignment occurrences="3">
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
<code>$chr</code>
|
||||||
|
</MixedAssignment>
|
||||||
|
<MixedOperand occurrences="1">
|
||||||
|
<code>static::$htmlNamedEntityMap[$ord]</code>
|
||||||
|
</MixedOperand>
|
||||||
|
<PossiblyInvalidArgument occurrences="1">
|
||||||
|
<code>$from</code>
|
||||||
|
</PossiblyInvalidArgument>
|
||||||
|
</file>
|
||||||
|
<file src="test/EscaperTest.php">
|
||||||
|
<InvalidReturnStatement occurrences="5"/>
|
||||||
|
<InvalidReturnType occurrences="5">
|
||||||
|
<code>array<string, array{0: string, 1: string}></code>
|
||||||
|
<code>array<string, array{0: string, 1: string}></code>
|
||||||
|
<code>array<string, array{0: string, 1: string}></code>
|
||||||
|
<code>array<string, array{0: string, 1: string}></code>
|
||||||
|
<code>array<string, array{0: string}></code>
|
||||||
|
</InvalidReturnType>
|
||||||
|
<MissingReturnType occurrences="9">
|
||||||
|
<code>testCssEscapingReturnsStringIfContainsOnlyDigits</code>
|
||||||
|
<code>testCssEscapingReturnsStringIfZeroLength</code>
|
||||||
|
<code>testHtmlAttributeEscapingEscapesOwaspRecommendedRanges</code>
|
||||||
|
<code>testJavascriptEscapingReturnsStringIfContainsOnlyDigits</code>
|
||||||
|
<code>testJavascriptEscapingReturnsStringIfZeroLength</code>
|
||||||
|
<code>testReturnsEncodingFromGetter</code>
|
||||||
|
<code>testSettingEncodingToEmptyStringShouldThrowException</code>
|
||||||
|
<code>testSettingEncodingToInvalidValueShouldThrowException</code>
|
||||||
|
<code>testUnicodeCodepointConversionToUtf8</code>
|
||||||
|
</MissingReturnType>
|
||||||
|
</file>
|
||||||
|
<file src="vendor/symfony/polyfill-mbstring/bootstrap80.php">
|
||||||
|
<ParseError occurrences="1">
|
||||||
|
<code>=</code>
|
||||||
|
</ParseError>
|
||||||
|
</file>
|
||||||
|
</files>
|
||||||
34
vendor/laminas/laminas-escaper/psalm.xml
vendored
Normal file
34
vendor/laminas/laminas-escaper/psalm.xml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<psalm
|
||||||
|
totallyTyped="true"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns="https://getpsalm.org/schema/config"
|
||||||
|
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
||||||
|
errorBaseline="psalm-baseline.xml"
|
||||||
|
>
|
||||||
|
<projectFiles>
|
||||||
|
<directory name="src"/>
|
||||||
|
<directory name="test"/>
|
||||||
|
<ignoreFiles>
|
||||||
|
<directory name="vendor"/>
|
||||||
|
</ignoreFiles>
|
||||||
|
</projectFiles>
|
||||||
|
|
||||||
|
<issueHandlers>
|
||||||
|
<InternalMethod>
|
||||||
|
<errorLevel type="suppress">
|
||||||
|
<referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::method"/>
|
||||||
|
</errorLevel>
|
||||||
|
<errorLevel type="suppress">
|
||||||
|
<referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::willReturn"/>
|
||||||
|
</errorLevel>
|
||||||
|
<errorLevel type="suppress">
|
||||||
|
<referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::with"/>
|
||||||
|
</errorLevel>
|
||||||
|
</InternalMethod>
|
||||||
|
</issueHandlers>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
<pluginClass class="Psalm\PhpUnitPlugin\Plugin"/>
|
||||||
|
</plugins>
|
||||||
|
</psalm>
|
||||||
422
vendor/laminas/laminas-escaper/src/Escaper.php
vendored
Normal file
422
vendor/laminas/laminas-escaper/src/Escaper.php
vendored
Normal file
@@ -0,0 +1,422 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Laminas\Escaper;
|
||||||
|
|
||||||
|
use function bin2hex;
|
||||||
|
use function ctype_digit;
|
||||||
|
use function function_exists;
|
||||||
|
use function hexdec;
|
||||||
|
use function htmlspecialchars;
|
||||||
|
use function iconv;
|
||||||
|
use function in_array;
|
||||||
|
use function mb_convert_encoding;
|
||||||
|
use function ord;
|
||||||
|
use function preg_match;
|
||||||
|
use function preg_replace_callback;
|
||||||
|
use function rawurlencode;
|
||||||
|
use function sprintf;
|
||||||
|
use function strlen;
|
||||||
|
use function strtolower;
|
||||||
|
use function strtoupper;
|
||||||
|
use function substr;
|
||||||
|
|
||||||
|
use const ENT_QUOTES;
|
||||||
|
use const ENT_SUBSTITUTE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Context specific methods for use in secure output escaping
|
||||||
|
*/
|
||||||
|
class Escaper
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Entity Map mapping Unicode codepoints to any available named HTML entities.
|
||||||
|
*
|
||||||
|
* While HTML supports far more named entities, the lowest common denominator
|
||||||
|
* has become HTML5's XML Serialisation which is restricted to the those named
|
||||||
|
* entities that XML supports. Using HTML entities would result in this error:
|
||||||
|
* XML Parsing Error: undefined entity
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected static $htmlNamedEntityMap = [
|
||||||
|
34 => 'quot', // quotation mark
|
||||||
|
38 => 'amp', // ampersand
|
||||||
|
60 => 'lt', // less-than sign
|
||||||
|
62 => 'gt', // greater-than sign
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Current encoding for escaping. If not UTF-8, we convert strings from this encoding
|
||||||
|
* pre-escaping and back to this encoding post-escaping.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $encoding = 'utf-8';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Holds the value of the special flags passed as second parameter to
|
||||||
|
* htmlspecialchars().
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
protected $htmlSpecialCharsFlags;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static Matcher which escapes characters for HTML Attribute contexts
|
||||||
|
*
|
||||||
|
* @var callable
|
||||||
|
*/
|
||||||
|
protected $htmlAttrMatcher;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static Matcher which escapes characters for Javascript contexts
|
||||||
|
*
|
||||||
|
* @var callable
|
||||||
|
*/
|
||||||
|
protected $jsMatcher;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Static Matcher which escapes characters for CSS Attribute contexts
|
||||||
|
*
|
||||||
|
* @var callable
|
||||||
|
*/
|
||||||
|
protected $cssMatcher;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* List of all encoding supported by this class
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $supportedEncodings = [
|
||||||
|
'iso-8859-1',
|
||||||
|
'iso8859-1',
|
||||||
|
'iso-8859-5',
|
||||||
|
'iso8859-5',
|
||||||
|
'iso-8859-15',
|
||||||
|
'iso8859-15',
|
||||||
|
'utf-8',
|
||||||
|
'cp866',
|
||||||
|
'ibm866',
|
||||||
|
'866',
|
||||||
|
'cp1251',
|
||||||
|
'windows-1251',
|
||||||
|
'win-1251',
|
||||||
|
'1251',
|
||||||
|
'cp1252',
|
||||||
|
'windows-1252',
|
||||||
|
'1252',
|
||||||
|
'koi8-r',
|
||||||
|
'koi8-ru',
|
||||||
|
'koi8r',
|
||||||
|
'big5',
|
||||||
|
'950',
|
||||||
|
'gb2312',
|
||||||
|
'936',
|
||||||
|
'big5-hkscs',
|
||||||
|
'shift_jis',
|
||||||
|
'sjis',
|
||||||
|
'sjis-win',
|
||||||
|
'cp932',
|
||||||
|
'932',
|
||||||
|
'euc-jp',
|
||||||
|
'eucjp',
|
||||||
|
'eucjp-win',
|
||||||
|
'macroman',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor: Single parameter allows setting of global encoding for use by
|
||||||
|
* the current object.
|
||||||
|
*
|
||||||
|
* @throws Exception\InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public function __construct(?string $encoding = null)
|
||||||
|
{
|
||||||
|
if ($encoding !== null) {
|
||||||
|
if ($encoding === '') {
|
||||||
|
throw new Exception\InvalidArgumentException(
|
||||||
|
static::class . ' constructor parameter does not allow a blank value'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$encoding = strtolower($encoding);
|
||||||
|
if (! in_array($encoding, $this->supportedEncodings)) {
|
||||||
|
throw new Exception\InvalidArgumentException(
|
||||||
|
'Value of \'' . $encoding . '\' passed to ' . static::class
|
||||||
|
. ' constructor parameter is invalid. Provide an encoding supported by htmlspecialchars()'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->encoding = $encoding;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We take advantage of ENT_SUBSTITUTE flag to correctly deal with invalid UTF-8 sequences.
|
||||||
|
$this->htmlSpecialCharsFlags = ENT_QUOTES | ENT_SUBSTITUTE;
|
||||||
|
|
||||||
|
// set matcher callbacks
|
||||||
|
$this->htmlAttrMatcher = [$this, 'htmlAttrMatcher'];
|
||||||
|
$this->jsMatcher = [$this, 'jsMatcher'];
|
||||||
|
$this->cssMatcher = [$this, 'cssMatcher'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the encoding that all output/input is expected to be encoded in.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getEncoding()
|
||||||
|
{
|
||||||
|
return $this->encoding;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string for the HTML Body context where there are very few characters
|
||||||
|
* of special meaning. Internally this will use htmlspecialchars().
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function escapeHtml(string $string)
|
||||||
|
{
|
||||||
|
return htmlspecialchars($string, $this->htmlSpecialCharsFlags, $this->encoding);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string for the HTML Attribute context. We use an extended set of characters
|
||||||
|
* to escape that are not covered by htmlspecialchars() to cover cases where an attribute
|
||||||
|
* might be unquoted or quoted illegally (e.g. backticks are valid quotes for IE).
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function escapeHtmlAttr(string $string)
|
||||||
|
{
|
||||||
|
$string = $this->toUtf8($string);
|
||||||
|
if ($string === '' || ctype_digit($string)) {
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = preg_replace_callback('/[^a-z0-9,\.\-_]/iSu', $this->htmlAttrMatcher, $string);
|
||||||
|
return $this->fromUtf8($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string for the Javascript context. This does not use json_encode(). An extended
|
||||||
|
* set of characters are escaped beyond ECMAScript's rules for Javascript literal string
|
||||||
|
* escaping in order to prevent misinterpretation of Javascript as HTML leading to the
|
||||||
|
* injection of special characters and entities. The escaping used should be tolerant
|
||||||
|
* of cases where HTML escaping was not applied on top of Javascript escaping correctly.
|
||||||
|
* Backslash escaping is not used as it still leaves the escaped character as-is and so
|
||||||
|
* is not useful in a HTML context.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function escapeJs(string $string)
|
||||||
|
{
|
||||||
|
$string = $this->toUtf8($string);
|
||||||
|
if ($string === '' || ctype_digit($string)) {
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = preg_replace_callback('/[^a-z0-9,\._]/iSu', $this->jsMatcher, $string);
|
||||||
|
return $this->fromUtf8($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string for the URI or Parameter contexts. This should not be used to escape
|
||||||
|
* an entire URI - only a subcomponent being inserted. The function is a simple proxy
|
||||||
|
* to rawurlencode() which now implements RFC 3986 since PHP 5.3 completely.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function escapeUrl(string $string)
|
||||||
|
{
|
||||||
|
return rawurlencode($string);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Escape a string for the CSS context. CSS escaping can be applied to any string being
|
||||||
|
* inserted into CSS and escapes everything except alphanumerics.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function escapeCss(string $string)
|
||||||
|
{
|
||||||
|
$string = $this->toUtf8($string);
|
||||||
|
if ($string === '' || ctype_digit($string)) {
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = preg_replace_callback('/[^a-z0-9]/iSu', $this->cssMatcher, $string);
|
||||||
|
return $this->fromUtf8($result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback function for preg_replace_callback that applies HTML Attribute
|
||||||
|
* escaping to all matches.
|
||||||
|
*
|
||||||
|
* @param array $matches
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function htmlAttrMatcher($matches)
|
||||||
|
{
|
||||||
|
$chr = $matches[0];
|
||||||
|
$ord = ord($chr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The following replaces characters undefined in HTML with the
|
||||||
|
* hex entity for the Unicode replacement character.
|
||||||
|
*/
|
||||||
|
if (
|
||||||
|
($ord <= 0x1f && $chr !== "\t" && $chr !== "\n" && $chr !== "\r")
|
||||||
|
|| ($ord >= 0x7f && $ord <= 0x9f)
|
||||||
|
) {
|
||||||
|
return '�';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the current character to escape has a name entity we should
|
||||||
|
* replace it with while grabbing the integer value of the character.
|
||||||
|
*/
|
||||||
|
if (strlen($chr) > 1) {
|
||||||
|
$chr = $this->convertEncoding($chr, 'UTF-32BE', 'UTF-8');
|
||||||
|
}
|
||||||
|
|
||||||
|
$hex = bin2hex($chr);
|
||||||
|
$ord = hexdec($hex);
|
||||||
|
if (isset(static::$htmlNamedEntityMap[$ord])) {
|
||||||
|
return '&' . static::$htmlNamedEntityMap[$ord] . ';';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Per OWASP recommendations, we'll use upper hex entities
|
||||||
|
* for any other characters where a named entity does not exist.
|
||||||
|
*/
|
||||||
|
if ($ord > 255) {
|
||||||
|
return sprintf('&#x%04X;', $ord);
|
||||||
|
}
|
||||||
|
return sprintf('&#x%02X;', $ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback function for preg_replace_callback that applies Javascript
|
||||||
|
* escaping to all matches.
|
||||||
|
*
|
||||||
|
* @param array $matches
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function jsMatcher($matches)
|
||||||
|
{
|
||||||
|
$chr = $matches[0];
|
||||||
|
if (strlen($chr) === 1) {
|
||||||
|
return sprintf('\\x%02X', ord($chr));
|
||||||
|
}
|
||||||
|
$chr = $this->convertEncoding($chr, 'UTF-16BE', 'UTF-8');
|
||||||
|
$hex = strtoupper(bin2hex($chr));
|
||||||
|
if (strlen($hex) <= 4) {
|
||||||
|
return sprintf('\\u%04s', $hex);
|
||||||
|
}
|
||||||
|
$highSurrogate = substr($hex, 0, 4);
|
||||||
|
$lowSurrogate = substr($hex, 4, 4);
|
||||||
|
return sprintf('\\u%04s\\u%04s', $highSurrogate, $lowSurrogate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback function for preg_replace_callback that applies CSS
|
||||||
|
* escaping to all matches.
|
||||||
|
*
|
||||||
|
* @param array $matches
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function cssMatcher($matches)
|
||||||
|
{
|
||||||
|
$chr = $matches[0];
|
||||||
|
if (strlen($chr) === 1) {
|
||||||
|
$ord = ord($chr);
|
||||||
|
} else {
|
||||||
|
$chr = $this->convertEncoding($chr, 'UTF-32BE', 'UTF-8');
|
||||||
|
$ord = hexdec(bin2hex($chr));
|
||||||
|
}
|
||||||
|
return sprintf('\\%X ', $ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a string to UTF-8 from the base encoding. The base encoding is set via this
|
||||||
|
*
|
||||||
|
* @param string $string
|
||||||
|
* @throws Exception\RuntimeException
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function toUtf8($string)
|
||||||
|
{
|
||||||
|
if ($this->getEncoding() === 'utf-8') {
|
||||||
|
$result = $string;
|
||||||
|
} else {
|
||||||
|
$result = $this->convertEncoding($string, 'UTF-8', $this->getEncoding());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $this->isUtf8($result)) {
|
||||||
|
throw new Exception\RuntimeException(
|
||||||
|
sprintf('String to be escaped was not valid UTF-8 or could not be converted: %s', $result)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a string from UTF-8 to the base encoding. The base encoding is set via this
|
||||||
|
*
|
||||||
|
* @param string $string
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function fromUtf8($string)
|
||||||
|
{
|
||||||
|
if ($this->getEncoding() === 'utf-8') {
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->convertEncoding($string, $this->getEncoding(), 'UTF-8');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a given string appears to be valid UTF-8 or not.
|
||||||
|
*
|
||||||
|
* @param string $string
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function isUtf8($string)
|
||||||
|
{
|
||||||
|
return $string === '' || preg_match('/^./su', $string);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encoding conversion helper which wraps iconv and mbstring where they exist or throws
|
||||||
|
* and exception where neither is available.
|
||||||
|
*
|
||||||
|
* @param string $string
|
||||||
|
* @param string $to
|
||||||
|
* @param array|string $from
|
||||||
|
* @throws Exception\RuntimeException
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function convertEncoding($string, $to, $from)
|
||||||
|
{
|
||||||
|
if (function_exists('iconv')) {
|
||||||
|
$result = iconv($from, $to, $string);
|
||||||
|
} elseif (function_exists('mb_convert_encoding')) {
|
||||||
|
$result = mb_convert_encoding($string, $to, $from);
|
||||||
|
} else {
|
||||||
|
throw new Exception\RuntimeException(
|
||||||
|
static::class
|
||||||
|
. ' requires either the iconv or mbstring extension to be installed'
|
||||||
|
. ' when escaping for non UTF-8 strings.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($result === false) {
|
||||||
|
return ''; // return non-fatal blank string on encoding errors from users
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
9
vendor/laminas/laminas-escaper/src/Exception/ExceptionInterface.php
vendored
Normal file
9
vendor/laminas/laminas-escaper/src/Exception/ExceptionInterface.php
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Laminas\Escaper\Exception;
|
||||||
|
|
||||||
|
interface ExceptionInterface
|
||||||
|
{
|
||||||
|
}
|
||||||
13
vendor/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php
vendored
Normal file
13
vendor/laminas/laminas-escaper/src/Exception/InvalidArgumentException.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Laminas\Escaper\Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invalid argument exception
|
||||||
|
*/
|
||||||
|
class InvalidArgumentException extends \InvalidArgumentException implements
|
||||||
|
ExceptionInterface
|
||||||
|
{
|
||||||
|
}
|
||||||
13
vendor/laminas/laminas-escaper/src/Exception/RuntimeException.php
vendored
Normal file
13
vendor/laminas/laminas-escaper/src/Exception/RuntimeException.php
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Laminas\Escaper\Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invalid argument exception
|
||||||
|
*/
|
||||||
|
class RuntimeException extends \RuntimeException implements
|
||||||
|
ExceptionInterface
|
||||||
|
{
|
||||||
|
}
|
||||||
108
vendor/phpmailer/phpmailer/README.md
vendored
108
vendor/phpmailer/phpmailer/README.md
vendored
@@ -1,46 +1,50 @@
|
|||||||

|

|
||||||
|
|
||||||
# PHPMailer - A full-featured email creation and transfer class for PHP
|
# PHPMailer – A full-featured email creation and transfer class for PHP
|
||||||
|
|
||||||
Build status: [](https://travis-ci.org/PHPMailer/PHPMailer)
|
[](https://github.com/PHPMailer/PHPMailer/actions)
|
||||||
[](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/)
|
[](https://codecov.io/gh/PHPMailer/PHPMailer)
|
||||||
[](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/)
|
[](https://packagist.org/packages/phpmailer/phpmailer)
|
||||||
|
[](https://packagist.org/packages/phpmailer/phpmailer)
|
||||||
|
[](https://packagist.org/packages/phpmailer/phpmailer)
|
||||||
|
[](https://phpmailer.github.io/PHPMailer/)
|
||||||
|
|
||||||
[](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer) [](https://packagist.org/packages/phpmailer/phpmailer) [](http://phpmailer.github.io/PHPMailer/)
|
## Features
|
||||||
|
|
||||||
## Class Features
|
|
||||||
- Probably the world's most popular code for sending email from PHP!
|
- Probably the world's most popular code for sending email from PHP!
|
||||||
- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
|
- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
|
||||||
- Integrated SMTP support - send without a local mail server
|
- Integrated SMTP support – send without a local mail server
|
||||||
- Send emails with multiple To, CC, BCC and Reply-to addresses
|
- Send emails with multiple To, CC, BCC and Reply-to addresses
|
||||||
- Multipart/alternative emails for mail clients that do not read HTML email
|
- Multipart/alternative emails for mail clients that do not read HTML email
|
||||||
- Add attachments, including inline
|
- Add attachments, including inline
|
||||||
- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings
|
- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings
|
||||||
- SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SSL and SMTP+STARTTLS transports
|
- SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SMTPS and SMTP+STARTTLS transports
|
||||||
- Validates email addresses automatically
|
- Validates email addresses automatically
|
||||||
- Protect against header injection attacks
|
- Protects against header injection attacks
|
||||||
- Error messages in over 50 languages!
|
- Error messages in over 50 languages!
|
||||||
- DKIM and S/MIME signing support
|
- DKIM and S/MIME signing support
|
||||||
- Compatible with PHP 5.5 and later
|
- Compatible with PHP 5.5 and later, including PHP 8.1
|
||||||
- Namespaced to prevent name clashes
|
- Namespaced to prevent name clashes
|
||||||
- Much more!
|
- Much more!
|
||||||
|
|
||||||
## Why you might need it
|
## Why you might need it
|
||||||
Many PHP developers need to send email from their code. The only PHP function that supports this is [`mail()`](https://www.php.net/manual/en/function.mail.php). However, it does not provide any assistance for making use of popular features such as encryption, authentication, HTML messages, and attachments.
|
Many PHP developers need to send email from their code. The only PHP function that supports this directly is [`mail()`](https://www.php.net/manual/en/function.mail.php). However, it does not provide any assistance for making use of popular features such as encryption, authentication, HTML messages, and attachments.
|
||||||
|
|
||||||
Formatting email correctly is surprisingly difficult. There are myriad overlapping RFCs, requiring tight adherence to horribly complicated formatting and encoding rules – the vast majority of code that you'll find online that uses the `mail()` function directly is just plain wrong!
|
Formatting email correctly is surprisingly difficult. There are myriad overlapping (and conflicting) standards, requiring tight adherence to horribly complicated formatting and encoding rules – the vast majority of code that you'll find online that uses the `mail()` function directly is just plain wrong, if not unsafe!
|
||||||
*Please* don't be tempted to do it yourself – if you don't use PHPMailer, there are many other excellent libraries that you should look at before rolling your own. Try [SwiftMailer](https://swiftmailer.symfony.com/), [Zend/Mail](https://zendframework.github.io/zend-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail) etc.
|
|
||||||
|
|
||||||
The PHP `mail()` function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD, and macOS platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP implementation allows email sending on Windows platforms without a local mail server.
|
The PHP `mail()` function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD, and macOS platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP client allows email sending on all platforms without needing a local mail server. Be aware though, that the `mail()` function should be avoided when possible; it's both faster and [safer](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html) to use SMTP to localhost.
|
||||||
|
|
||||||
|
*Please* don't be tempted to do it yourself – if you don't use PHPMailer, there are many other excellent libraries that
|
||||||
|
you should look at before rolling your own. Try [SwiftMailer](https://swiftmailer.symfony.com/)
|
||||||
|
, [Laminas/Mail](https://docs.laminas.dev/laminas-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail) etc.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license, along with the [GPL Cooperation Commitment](https://gplcc.github.io/gplcc/). Please read LICENSE for information on the software availability and distribution.
|
This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license, along with the [GPL Cooperation Commitment](https://gplcc.github.io/gplcc/). Please read [LICENSE](https://github.com/PHPMailer/PHPMailer/blob/master/LICENSE) for information on the software availability and distribution.
|
||||||
|
|
||||||
## Installation & loading
|
## Installation & loading
|
||||||
PHPMailer is available on [Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install PHPMailer. Just add this line to your `composer.json` file:
|
PHPMailer is available on [Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install PHPMailer. Just add this line to your `composer.json` file:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"phpmailer/phpmailer": "~6.1"
|
"phpmailer/phpmailer": "^6.5"
|
||||||
```
|
```
|
||||||
|
|
||||||
or run
|
or run
|
||||||
@@ -53,7 +57,8 @@ Note that the `vendor` folder and the `vendor/autoload.php` script are generated
|
|||||||
|
|
||||||
If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package in your `composer.json`.
|
If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package in your `composer.json`.
|
||||||
|
|
||||||
Alternatively, if you're not using Composer, copy the contents of the PHPMailer folder into one of the `include_path` directories specified in your PHP configuration and load each class file manually:
|
Alternatively, if you're not using Composer, you
|
||||||
|
can [download PHPMailer as a zip file](https://github.com/PHPMailer/PHPMailer/archive/master.zip), (note that docs and examples are not included in the zip file), then copy the contents of the PHPMailer folder into one of the `include_path` directories specified in your PHP configuration and load each class file manually:
|
||||||
|
|
||||||
```php
|
```php
|
||||||
<?php
|
<?php
|
||||||
@@ -65,18 +70,16 @@ require 'path/to/PHPMailer/src/PHPMailer.php';
|
|||||||
require 'path/to/PHPMailer/src/SMTP.php';
|
require 'path/to/PHPMailer/src/SMTP.php';
|
||||||
```
|
```
|
||||||
|
|
||||||
If you're not using the `SMTP` class explicitly (you're probably not), you don't need a `use` line for the SMTP class.
|
If you're not using the `SMTP` class explicitly (you're probably not), you don't need a `use` line for the SMTP class. Even if you're not using exceptions, you do still need to load the `Exception` class as it is used internally.
|
||||||
|
|
||||||
If you don't speak git or just want a tarball, click the 'zip' button on the right of the project page in GitHub, though note that docs and examples are not included in the tarball.
|
|
||||||
|
|
||||||
## Legacy versions
|
## Legacy versions
|
||||||
PHPMailer 5.2 (which is compatible with PHP 5.0 - 7.0) is no longer being supported, even for security updates. You will find the latest version of 5.2 in the [5.2-stable branch](https://github.com/PHPMailer/PHPMailer/tree/5.2-stable). If you're using PHP 5.5 or later (which you should be), switch to the 6.x releases.
|
PHPMailer 5.2 (which is compatible with PHP 5.0 — 7.0) is no longer supported, even for security updates. You will find the latest version of 5.2 in the [5.2-stable branch](https://github.com/PHPMailer/PHPMailer/tree/5.2-stable). If you're using PHP 5.5 or later (which you should be), switch to the 6.x releases.
|
||||||
|
|
||||||
### Upgrading from 5.2
|
### Upgrading from 5.2
|
||||||
The biggest changes are that source files are now in the `src/` folder, and PHPMailer now declares the namespace `PHPMailer\PHPMailer`. This has several important effects – [read the upgrade guide](https://github.com/PHPMailer/PHPMailer/tree/master/UPGRADING.md) for more details.
|
The biggest changes are that source files are now in the `src/` folder, and PHPMailer now declares the namespace `PHPMailer\PHPMailer`. This has several important effects – [read the upgrade guide](https://github.com/PHPMailer/PHPMailer/tree/master/UPGRADING.md) for more details.
|
||||||
|
|
||||||
### Minimal installation
|
### Minimal installation
|
||||||
While installing the entire package manually or with Composer is simple, convenient, and reliable, you may want to include only vital files in your project. At the very least you will need [src/PHPMailer.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/PHPMailer.php). If you're using SMTP, you'll need [src/SMTP.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/SMTP.php), and if you're using POP-before SMTP, you'll need [src/POP3.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/POP3.php). You can skip the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder if you're not showing errors to users and can make do with English-only errors. If you're using XOAUTH2 you will need [src/OAuth.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/OAuth.php) as well as the Composer dependencies for the services you wish to authenticate with. Really, it's much easier to use Composer!
|
While installing the entire package manually or with Composer is simple, convenient, and reliable, you may want to include only vital files in your project. At the very least you will need [src/PHPMailer.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/PHPMailer.php). If you're using SMTP, you'll need [src/SMTP.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/SMTP.php), and if you're using POP-before SMTP (*very* unlikely!), you'll need [src/POP3.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/POP3.php). You can skip the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder if you're not showing errors to users and can make do with English-only errors. If you're using XOAUTH2 you will need [src/OAuth.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/OAuth.php) as well as the Composer dependencies for the services you wish to authenticate with. Really, it's much easier to use Composer!
|
||||||
|
|
||||||
## A Simple Example
|
## A Simple Example
|
||||||
|
|
||||||
@@ -91,19 +94,19 @@ use PHPMailer\PHPMailer\Exception;
|
|||||||
//Load Composer's autoloader
|
//Load Composer's autoloader
|
||||||
require 'vendor/autoload.php';
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
// Instantiation and passing `true` enables exceptions
|
//Create an instance; passing `true` enables exceptions
|
||||||
$mail = new PHPMailer(true);
|
$mail = new PHPMailer(true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//Server settings
|
//Server settings
|
||||||
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
|
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
|
||||||
$mail->isSMTP(); //Send using SMTP
|
$mail->isSMTP(); //Send using SMTP
|
||||||
$mail->Host = 'smtp1.example.com'; // Set the SMTP server to send through
|
$mail->Host = 'smtp.example.com'; //Set the SMTP server to send through
|
||||||
$mail->SMTPAuth = true; //Enable SMTP authentication
|
$mail->SMTPAuth = true; //Enable SMTP authentication
|
||||||
$mail->Username = 'user@example.com'; //SMTP username
|
$mail->Username = 'user@example.com'; //SMTP username
|
||||||
$mail->Password = 'secret'; //SMTP password
|
$mail->Password = 'secret'; //SMTP password
|
||||||
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
|
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption
|
||||||
$mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
|
$mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`
|
||||||
|
|
||||||
//Recipients
|
//Recipients
|
||||||
$mail->setFrom('from@example.com', 'Mailer');
|
$mail->setFrom('from@example.com', 'Mailer');
|
||||||
@@ -130,7 +133,7 @@ try {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
You'll find plenty more to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder.
|
You'll find plenty to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder, which covers many common scenarios including sending through gmail, building contact forms, sending to mailing lists, and more.
|
||||||
|
|
||||||
If you are re-using the instance (e.g. when sending to a mailing list), you may need to clear the recipient list to avoid sending duplicate messages. See [the mailing list example](https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) for further guidance.
|
If you are re-using the instance (e.g. when sending to a mailing list), you may need to clear the recipient list to avoid sending duplicate messages. See [the mailing list example](https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) for further guidance.
|
||||||
|
|
||||||
@@ -144,45 +147,39 @@ PHPMailer defaults to English, but in the [language](https://github.com/PHPMaile
|
|||||||
$mail->setLanguage('fr', '/optional/path/to/language/directory/');
|
$mail->setLanguage('fr', '/optional/path/to/language/directory/');
|
||||||
```
|
```
|
||||||
|
|
||||||
We welcome corrections and new languages - if you're looking for corrections to do, run the [PHPMailerLangTest.php](https://github.com/PHPMailer/PHPMailer/tree/master/test/PHPMailerLangTest.php) script in the tests folder and it will show any missing translations.
|
We welcome corrections and new languages – if you're looking for corrections, run the [PHPMailerLangTest.php](https://github.com/PHPMailer/PHPMailer/tree/master/test/PHPMailerLangTest.php) script in the tests folder and it will show any missing translations.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
Start reading at the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, this should be the first place you look as it's the most frequently updated.
|
Start reading at the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, head for [the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting) as it's frequently updated.
|
||||||
|
|
||||||
Examples of how to use PHPMailer for common scenarios can be found in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder. If you're looking for a good starting point, we recommend you start with [the Gmail example](https://github.com/PHPMailer/PHPMailer/tree/master/examples/gmail.phps).
|
Examples of how to use PHPMailer for common scenarios can be found in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder. If you're looking for a good starting point, we recommend you start with [the Gmail example](https://github.com/PHPMailer/PHPMailer/tree/master/examples/gmail.phps).
|
||||||
|
|
||||||
Note that in order to reduce PHPMailer's deployed code footprint, the examples are no longer included if you load PHPMailer via Composer or via [GitHub's zip file download](https://github.com/PHPMailer/PHPMailer/archive/master.zip), so you'll need to either clone the git repository or use the above links to get to the examples directly.
|
To reduce PHPMailer's deployed code footprint, examples are not included if you load PHPMailer via Composer or via [GitHub's zip file download](https://github.com/PHPMailer/PHPMailer/archive/master.zip), so you'll need to either clone the git repository or use the above links to get to the examples directly.
|
||||||
|
|
||||||
Complete generated API documentation is [available online](http://phpmailer.github.io/PHPMailer/).
|
Complete generated API documentation is [available online](https://phpmailer.github.io/PHPMailer/).
|
||||||
|
|
||||||
You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/blob/master/test/PHPMailerTest.php) a good source of how to do various operations such as encryption.
|
You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/blob/master/test/PHPMailerTest.php) a good reference for how to do various operations such as encryption.
|
||||||
|
|
||||||
If the documentation doesn't cover what you need, search the [many questions on Stack Overflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting).
|
If the documentation doesn't cover what you need, search the [many questions on Stack Overflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting).
|
||||||
|
|
||||||
## Tests
|
## Tests
|
||||||
There is a PHPUnit test script in the [test](https://github.com/PHPMailer/PHPMailer/tree/master/test/) folder. PHPMailer uses PHPUnit 4.8 - we would use 5.x but we need to run on PHP 5.5.
|
[PHPMailer tests](https://github.com/PHPMailer/PHPMailer/tree/master/test/) use PHPUnit 9, with [a polyfill](https://github.com/Yoast/PHPUnit-Polyfills) to let 9-style tests run on older PHPUnit and PHP versions.
|
||||||
|
|
||||||
Build status: [](https://travis-ci.org/PHPMailer/PHPMailer)
|
[](https://github.com/PHPMailer/PHPMailer/actions)
|
||||||
|
|
||||||
If this isn't passing, is there something you can do to help?
|
If this isn't passing, is there something you can do to help?
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
Please disclose any vulnerabilities found responsibly - report any security problems found to the maintainers privately.
|
Please disclose any vulnerabilities found responsibly – report security issues to the maintainers privately.
|
||||||
|
|
||||||
PHPMailer versions prior to 5.2.22 (released January 9th 2017) have a local file disclosure vulnerability, [CVE-2017-5223](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5223). If content passed into `msgHTML()` is sourced from unfiltered user input, relative paths can map to absolute local file paths and added as attachments. Also note that `addAttachment` (just like `file_get_contents`, `passthru`, `unlink`, etc) should not be passed user-sourced params either! Reported by Yongxiang Li of Asiasecurity.
|
See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) and [PHPMailer's security advisories on GitHub](https://github.com/PHPMailer/PHPMailer/security).
|
||||||
|
|
||||||
PHPMailer versions prior to 5.2.20 (released December 28th 2016) are vulnerable to [CVE-2016-10045](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10045) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html), and patched by Paul Buonopane (@Zenexer).
|
|
||||||
|
|
||||||
PHPMailer versions prior to 5.2.18 (released December 2016) are vulnerable to [CVE-2016-10033](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10033) a critical remote code execution vulnerability, responsibly reported by [Dawid Golunski](http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html).
|
|
||||||
|
|
||||||
See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) for more detail on security issues.
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).
|
Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).
|
||||||
|
|
||||||
We're particularly interested in fixing edge-cases, expanding test coverage and updating translations.
|
We're particularly interested in fixing edge-cases, expanding test coverage and updating translations.
|
||||||
|
|
||||||
If you found a mistake in the docs, or want to add something, go ahead and amend the wiki - anyone can edit it.
|
If you found a mistake in the docs, or want to add something, go ahead and amend the wiki – anyone can edit it.
|
||||||
|
|
||||||
If you have git clones from prior to the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone:
|
If you have git clones from prior to the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone:
|
||||||
|
|
||||||
@@ -193,27 +190,36 @@ git remote set-url upstream https://github.com/PHPMailer/PHPMailer.git
|
|||||||
Please *don't* use the SourceForge or Google Code projects any more; they are obsolete and no longer maintained.
|
Please *don't* use the SourceForge or Google Code projects any more; they are obsolete and no longer maintained.
|
||||||
|
|
||||||
## Sponsorship
|
## Sponsorship
|
||||||
Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), a powerful email marketing system.
|
Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), the world's only privacy-first email marketing system.
|
||||||
|
|
||||||
<a href="https://info.smartmessages.net/"><img src="https://www.smartmessages.net/img/smartmessages-logo.svg" width="250" height="28" alt="Smartmessages email marketing"></a>
|
<a href="https://info.smartmessages.net/"><img src="https://www.smartmessages.net/img/smartmessages-logo.svg" width="550" alt="Smartmessages.net privacy-first email marketing logo"></a>
|
||||||
|
|
||||||
Other contributions are gladly received, whether in beer 🍺, T-shirts 👕, Amazon wishlist raids, or cold, hard cash 💰. If you'd like to donate to say "thank you" to maintainers or contributors, please contact them through individual profile pages via [the contributors page](https://github.com/PHPMailer/PHPMailer/graphs/contributors).
|
Donations are very welcome, whether in beer 🍺, T-shirts 👕, or cold, hard cash 💰. Sponsorship through GitHub is a simple and convenient way to say "thank you" to PHPMailer's maintainers and contributors – just click the "Sponsor" button [on the project page](https://github.com/PHPMailer/PHPMailer). If your company uses PHPMailer, consider taking part in Tidelift's enterprise support programme.
|
||||||
|
|
||||||
|
## PHPMailer For Enterprise
|
||||||
|
|
||||||
|
Available as part of the Tidelift Subscription.
|
||||||
|
|
||||||
|
The maintainers of PHPMailer and thousands of other packages are working with Tidelift to deliver commercial
|
||||||
|
support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and
|
||||||
|
improve code health, while paying the maintainers of the exact packages you
|
||||||
|
use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-phpmailer-phpmailer?utm_source=packagist-phpmailer-phpmailer&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
See [changelog](changelog.md).
|
See [changelog](changelog.md).
|
||||||
|
|
||||||
## History
|
## History
|
||||||
- PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/).
|
- PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/).
|
||||||
- Marcus Bointon (coolbru on SF) and Andy Prevost (codeworxtech) took over the project in 2004.
|
- [Marcus Bointon](https://github.com/Synchro) (`coolbru` on SF) and Andy Prevost (`codeworxtech`) took over the project in 2004.
|
||||||
- Became an Apache incubator project on Google Code in 2010, managed by Jim Jagielski.
|
- Became an Apache incubator project on Google Code in 2010, managed by Jim Jagielski.
|
||||||
- Marcus created his fork on [GitHub](https://github.com/Synchro/PHPMailer) in 2008.
|
- Marcus created [his fork on GitHub](https://github.com/Synchro/PHPMailer) in 2008.
|
||||||
- Jim and Marcus decide to join forces and use GitHub as the canonical and official repo for PHPMailer in 2013.
|
- Jim and Marcus decide to join forces and use GitHub as the canonical and official repo for PHPMailer in 2013.
|
||||||
- PHPMailer moves to the [PHPMailer organisation](https://github.com/PHPMailer) on GitHub in 2013.
|
- PHPMailer moves to [the PHPMailer organisation](https://github.com/PHPMailer) on GitHub in 2013.
|
||||||
|
|
||||||
### What's changed since moving from SourceForge?
|
### What's changed since moving from SourceForge?
|
||||||
- Official successor to the SourceForge and Google Code projects.
|
- Official successor to the SourceForge and Google Code projects.
|
||||||
- Test suite.
|
- Test suite.
|
||||||
- Continuous integration with Travis-CI.
|
- Continuous integration with Github Actions.
|
||||||
- Composer support.
|
- Composer support.
|
||||||
- Public development.
|
- Public development.
|
||||||
- Additional languages and language strings.
|
- Additional languages and language strings.
|
||||||
|
|||||||
9
vendor/phpmailer/phpmailer/SECURITY.md
vendored
9
vendor/phpmailer/phpmailer/SECURITY.md
vendored
@@ -1,6 +1,13 @@
|
|||||||
# Security notices relating to PHPMailer
|
# Security notices relating to PHPMailer
|
||||||
|
|
||||||
Please disclose any vulnerabilities found responsibly - report any security problems found to the maintainers privately.
|
Please disclose any security issues or vulnerabilities found through [Tidelift's coordinated disclosure system](https://tidelift.com/security) or to the maintainers privately.
|
||||||
|
|
||||||
|
PHPMailer 6.4.1 and earlier contain a vulnerability that can result in untrusted code being called (if such code is injected into the host project's scope by other means). If the `$patternselect` parameter to `validateAddress()` is set to `'php'` (the default, defined by `PHPMailer::$validator`), and the global namespace contains a function called `php`, it will be called in preference to the built-in validator of the same name. Mitigated in PHPMailer 6.5.0 by denying the use of simple strings as validator function names. Recorded as [CVE-2021-3603](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-3603). Reported by [Vikrant Singh Chauhan](mailto:vi@hackberry.xyz) via [huntr.dev](https://www.huntr.dev/).
|
||||||
|
|
||||||
|
PHPMailer versions 6.4.1 and earlier contain a possible remote code execution vulnerability through the `$lang_path` parameter of the `setLanguage()` method. If the `$lang_path` parameter is passed unfiltered from user input, it can be set to [a UNC path](https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats#unc-paths), and if an attacker is also able to persuade the server to load a file from that UNC path, a script file under their control may be executed. This vulnerability only applies to systems that resolve UNC paths, typically only Microsoft Windows.
|
||||||
|
PHPMailer 6.5.0 mitigates this by no longer treating translation files as PHP code, but by parsing their text content directly. This approach avoids the possibility of executing unknown code while retaining backward compatibility. This isn't ideal, so the current translation format is deprecated and will be replaced in the next major release. Recorded as [CVE-2021-34551](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-34551). Reported by [Jilin Diting Information Technology Co., Ltd](https://listensec.com) via Tidelift.
|
||||||
|
|
||||||
|
PHPMailer versions between 6.1.8 and 6.4.0 contain a regression of the earlier CVE-2018-19296 object injection vulnerability as a result of [a fix for Windows UNC paths in 6.1.8](https://github.com/PHPMailer/PHPMailer/commit/e2e07a355ee8ff36aba21d0242c5950c56e4c6f9). Recorded as [CVE-2020-36326](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-36326). Reported by Fariskhi Vidyan via Tidelift. 6.4.1 fixes this issue, and also enforces stricter checks for URL schemes in local path contexts.
|
||||||
|
|
||||||
PHPMailer versions 6.1.5 and earlier contain an output escaping bug that occurs in `Content-Type` and `Content-Disposition` when filenames passed into `addAttachment` and other methods that accept attachment names contain double quote characters, in contravention of RFC822 3.4.1. No specific vulnerability has been found relating to this, but it could allow file attachments to bypass attachment filters that are based on matching filename extensions. Recorded as [CVE-2020-13625](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-13625). Reported by Elar Lang of Clarified Security.
|
PHPMailer versions 6.1.5 and earlier contain an output escaping bug that occurs in `Content-Type` and `Content-Disposition` when filenames passed into `addAttachment` and other methods that accept attachment names contain double quote characters, in contravention of RFC822 3.4.1. No specific vulnerability has been found relating to this, but it could allow file attachments to bypass attachment filters that are based on matching filename extensions. Recorded as [CVE-2020-13625](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-13625). Reported by Elar Lang of Clarified Security.
|
||||||
|
|
||||||
|
|||||||
2
vendor/phpmailer/phpmailer/VERSION
vendored
2
vendor/phpmailer/phpmailer/VERSION
vendored
@@ -1 +1 @@
|
|||||||
6.1.6
|
6.6.0
|
||||||
37
vendor/phpmailer/phpmailer/composer.json
vendored
37
vendor/phpmailer/phpmailer/composer.json
vendored
@@ -21,26 +21,37 @@
|
|||||||
],
|
],
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"url": "https://github.com/synchro",
|
"url": "https://github.com/Synchro",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"config": {
|
||||||
|
"allow-plugins": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": true
|
||||||
|
}
|
||||||
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.5.0",
|
"php": ">=5.5.0",
|
||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-filter": "*"
|
"ext-filter": "*",
|
||||||
|
"ext-hash": "*"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"friendsofphp/php-cs-fixer": "^2.2",
|
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||||
"phpunit/phpunit": "^4.8 || ^5.7",
|
"doctrine/annotations": "^1.2",
|
||||||
"doctrine/annotations": "^1.2"
|
"php-parallel-lint/php-console-highlighter": "^0.5.0",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.3.1",
|
||||||
|
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||||
|
"roave/security-advisories": "dev-latest",
|
||||||
|
"squizlabs/php_codesniffer": "^3.6.2",
|
||||||
|
"yoast/phpunit-polyfills": "^1.0.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"psr/log": "For optional PSR-3 debug logging",
|
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||||
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
|
||||||
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
||||||
|
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
||||||
|
"psr/log": "For optional PSR-3 debug logging",
|
||||||
"stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
|
"stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
|
||||||
"ext-mbstring": "Needed to send email in multibyte encoding charset",
|
|
||||||
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
|
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -53,5 +64,13 @@
|
|||||||
"PHPMailer\\Test\\": "test/"
|
"PHPMailer\\Test\\": "test/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"license": "LGPL-2.1-only"
|
"license": "LGPL-2.1-only",
|
||||||
|
"scripts": {
|
||||||
|
"check": "./vendor/bin/phpcs",
|
||||||
|
"test": "./vendor/bin/phpunit --no-coverage",
|
||||||
|
"coverage": "./vendor/bin/phpunit",
|
||||||
|
"lint": [
|
||||||
|
"@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint . -e php,phps --exclude vendor --exclude .git --exclude build"
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
12
vendor/phpmailer/phpmailer/get_oauth_token.php
vendored
12
vendor/phpmailer/phpmailer/get_oauth_token.php
vendored
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHPMailer - PHP email creation and transport class.
|
* PHPMailer - PHP email creation and transport class.
|
||||||
* PHP Version 5.5
|
* PHP Version 5.5
|
||||||
@@ -8,7 +9,7 @@
|
|||||||
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
||||||
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
||||||
* @author Brent R. Matzelle (original founder)
|
* @author Brent R. Matzelle (original founder)
|
||||||
* @copyright 2012 - 2017 Marcus Bointon
|
* @copyright 2012 - 2020 Marcus Bointon
|
||||||
* @copyright 2010 - 2012 Jim Jagielski
|
* @copyright 2010 - 2012 Jim Jagielski
|
||||||
* @copyright 2004 - 2009 Andy Prevost
|
* @copyright 2004 - 2009 Andy Prevost
|
||||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||||
@@ -16,6 +17,7 @@
|
|||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an OAuth2 token from an OAuth2 provider.
|
* Get an OAuth2 token from an OAuth2 provider.
|
||||||
* * Install this script on your server so that it's accessible
|
* * Install this script on your server so that it's accessible
|
||||||
@@ -46,10 +48,10 @@ use Stevenmaguire\OAuth2\Client\Provider\Microsoft;
|
|||||||
if (!isset($_GET['code']) && !isset($_GET['provider'])) {
|
if (!isset($_GET['code']) && !isset($_GET['provider'])) {
|
||||||
?>
|
?>
|
||||||
<html>
|
<html>
|
||||||
<body>Select Provider:<br/>
|
<body>Select Provider:<br>
|
||||||
<a href='?provider=Google'>Google</a><br/>
|
<a href='?provider=Google'>Google</a><br>
|
||||||
<a href='?provider=Yahoo'>Yahoo</a><br/>
|
<a href='?provider=Yahoo'>Yahoo</a><br>
|
||||||
<a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br/>
|
<a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
<?php
|
<?php
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Afrikaans PHPMailer language file: refer to English translation for definitive list
|
* Afrikaans PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Arabic PHPMailer language file: refer to English translation for definitive list
|
* Arabic PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
@@ -18,8 +19,7 @@ $PHPMAILER_LANG['instantiate'] = 'لا يمكن توفير خدمة ا
|
|||||||
$PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: ';
|
$PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.';
|
$PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية ' .
|
$PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية فشل في الارسال لكل من : ';
|
||||||
'فشل في الارسال لكل من : ';
|
|
||||||
$PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: ';
|
$PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: ';
|
$PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: ';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Azerbaijani PHPMailer language file: refer to English translation for definitive list
|
* Azerbaijani PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bosnian PHPMailer language file: refer to English translation for definitive list
|
* Bosnian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Belarusian PHPMailer language file: refer to English translation for definitive list
|
* Belarusian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bulgarian PHPMailer language file: refer to English translation for definitive list
|
* Bulgarian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Catalan PHPMailer language file: refer to English translation for definitive list
|
* Catalan PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Chinese PHPMailer language file: refer to English translation for definitive list
|
* Chinese PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Czech PHPMailer language file: refer to English translation for definitive list
|
* Czech PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
@@ -15,6 +16,8 @@ $PHPMAILER_LANG['file_open'] = 'Chyba souboru: Nelze otevřít soubor
|
|||||||
$PHPMAILER_LANG['from_failed'] = 'Následující adresa odesílatele je nesprávná: ';
|
$PHPMAILER_LANG['from_failed'] = 'Následující adresa odesílatele je nesprávná: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Nelze vytvořit instanci emailové funkce.';
|
$PHPMAILER_LANG['instantiate'] = 'Nelze vytvořit instanci emailové funkce.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Neplatná adresa: ';
|
$PHPMAILER_LANG['invalid_address'] = 'Neplatná adresa: ';
|
||||||
|
$PHPMAILER_LANG['invalid_hostentry'] = 'Záznam hostitele je nesprávný: ';
|
||||||
|
$PHPMAILER_LANG['invalid_host'] = 'Hostitel je nesprávný: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer není podporován.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer není podporován.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Musíte zadat alespoň jednu emailovou adresu příjemce.';
|
$PHPMAILER_LANG['provide_address'] = 'Musíte zadat alespoň jednu emailovou adresu příjemce.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'Chyba SMTP: Následující adresy příjemců nejsou správně: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'Chyba SMTP: Následující adresy příjemců nejsou správně: ';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Danish PHPMailer language file: refer to English translation for definitive list
|
* Danish PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* German PHPMailer language file: refer to English translation for definitive list
|
* German PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
@@ -15,6 +16,8 @@ $PHPMAILER_LANG['file_open'] = 'Dateifehler: Konnte folgende Datei ni
|
|||||||
$PHPMAILER_LANG['from_failed'] = 'Die folgende Absenderadresse ist nicht korrekt: ';
|
$PHPMAILER_LANG['from_failed'] = 'Die folgende Absenderadresse ist nicht korrekt: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Mail-Funktion konnte nicht initialisiert werden.';
|
$PHPMAILER_LANG['instantiate'] = 'Mail-Funktion konnte nicht initialisiert werden.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Die Adresse ist ungültig: ';
|
$PHPMAILER_LANG['invalid_address'] = 'Die Adresse ist ungültig: ';
|
||||||
|
$PHPMAILER_LANG['invalid_hostentry'] = 'Ungültiger Hosteintrag: ';
|
||||||
|
$PHPMAILER_LANG['invalid_host'] = 'Ungültiger Host: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Bitte geben Sie mindestens eine Empfängeradresse an.';
|
$PHPMAILER_LANG['provide_address'] = 'Bitte geben Sie mindestens eine Empfängeradresse an.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: ';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Greek PHPMailer language file: refer to English translation for definitive list
|
* Greek PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Esperanto PHPMailer language file: refer to English translation for definitive list
|
* Esperanto PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Spanish PHPMailer language file: refer to English translation for definitive list
|
* Spanish PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Estonian PHPMailer language file: refer to English translation for definitive list
|
* Estonian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Persian/Farsi PHPMailer language file: refer to English translation for definitive list
|
* Persian/Farsi PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finnish PHPMailer language file: refer to English translation for definitive list
|
* Finnish PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Faroese PHPMailer language file: refer to English translation for definitive list
|
* Faroese PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* French PHPMailer language file: refer to English translation for definitive list
|
* French PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
@@ -8,22 +9,30 @@
|
|||||||
* @see http://unicode.org/udhr/n/notes_fra.html
|
* @see http://unicode.org/udhr/n/notes_fra.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'Erreur SMTP : échec de l\'authentification.';
|
$PHPMAILER_LANG['authenticate'] = 'Erreur SMTP : échec de l’authentification.';
|
||||||
|
$PHPMAILER_LANG['buggy_php'] = 'Votre version de PHP est affectée par un bug qui peut entraîner des messages corrompus. Pour résoudre ce problème, passez à l’envoi par SMTP, désactivez l’option mail.add_x_header dans le fichier php.ini, passez à MacOS ou Linux, ou passez PHP à la version 7.0.17+ ou 7.1.3+.';
|
||||||
$PHPMAILER_LANG['connect_host'] = 'Erreur SMTP : impossible de se connecter au serveur SMTP.';
|
$PHPMAILER_LANG['connect_host'] = 'Erreur SMTP : impossible de se connecter au serveur SMTP.';
|
||||||
$PHPMAILER_LANG['data_not_accepted'] = 'Erreur SMTP : données incorrectes.';
|
$PHPMAILER_LANG['data_not_accepted'] = 'Erreur SMTP : données incorrectes.';
|
||||||
$PHPMAILER_LANG['empty_message'] = 'Corps du message vide.';
|
$PHPMAILER_LANG['empty_message'] = 'Corps du message vide.';
|
||||||
$PHPMAILER_LANG['encoding'] = 'Encodage inconnu : ';
|
$PHPMAILER_LANG['encoding'] = 'Encodage inconnu : ';
|
||||||
$PHPMAILER_LANG['execute'] = 'Impossible de lancer l\'exécution : ';
|
$PHPMAILER_LANG['execute'] = 'Impossible de lancer l’exécution : ';
|
||||||
$PHPMAILER_LANG['file_access'] = 'Impossible d\'accéder au fichier : ';
|
$PHPMAILER_LANG['extension_missing'] = 'Extension manquante : ';
|
||||||
|
$PHPMAILER_LANG['file_access'] = 'Impossible d’accéder au fichier : ';
|
||||||
$PHPMAILER_LANG['file_open'] = 'Ouverture du fichier impossible : ';
|
$PHPMAILER_LANG['file_open'] = 'Ouverture du fichier impossible : ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'L\'adresse d\'expéditeur suivante a échoué : ';
|
$PHPMAILER_LANG['from_failed'] = 'L’adresse d’expéditeur suivante a échoué : ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Impossible d\'instancier la fonction mail.';
|
$PHPMAILER_LANG['instantiate'] = 'Impossible d’instancier la fonction mail.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'L\'adresse courriel n\'est pas valide : ';
|
$PHPMAILER_LANG['invalid_address'] = 'Adresse courriel non valide : ';
|
||||||
|
$PHPMAILER_LANG['invalid_header'] = 'Nom ou valeur de l’en-tête non valide';
|
||||||
|
$PHPMAILER_LANG['invalid_hostentry'] = 'Entrée d’hôte non valide : ';
|
||||||
|
$PHPMAILER_LANG['invalid_host'] = 'Hôte non valide : ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Vous devez fournir au moins une adresse de destinataire.';
|
$PHPMAILER_LANG['provide_address'] = 'Vous devez fournir au moins une adresse de destinataire.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'Erreur SMTP : les destinataires suivants sont en erreur : ';
|
$PHPMAILER_LANG['recipients_failed'] = 'Erreur SMTP : les destinataires suivants ont échoué : ';
|
||||||
$PHPMAILER_LANG['signing'] = 'Erreur de signature : ';
|
$PHPMAILER_LANG['signing'] = 'Erreur de signature : ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Échec de la connexion SMTP.';
|
$PHPMAILER_LANG['smtp_code'] = 'Code SMTP : ';
|
||||||
|
$PHPMAILER_LANG['smtp_code_ex'] = 'Informations supplémentaires SMTP : ';
|
||||||
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'La fonction SMTP connect() a échouée.';
|
||||||
|
$PHPMAILER_LANG['smtp_detail'] = 'Détails : ';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'Erreur du serveur SMTP : ';
|
$PHPMAILER_LANG['smtp_error'] = 'Erreur du serveur SMTP : ';
|
||||||
$PHPMAILER_LANG['variable_set'] = 'Impossible d\'initialiser ou de réinitialiser une variable : ';
|
$PHPMAILER_LANG['variable_set'] = 'Impossible d’initialiser ou de réinitialiser une variable : ';
|
||||||
$PHPMAILER_LANG['extension_missing'] = 'Extension manquante : ';
|
$PHPMAILER_LANG['extension_missing'] = 'Extension manquante : ';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Galician PHPMailer language file: refer to English translation for definitive list
|
* Galician PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hebrew PHPMailer language file: refer to English translation for definitive list
|
* Hebrew PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hindi PHPMailer language file: refer to English translation for definitive list
|
* Hindi PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Croatian PHPMailer language file: refer to English translation for definitive list
|
* Croatian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hungarian PHPMailer language file: refer to English translation for definitive list
|
* Hungarian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Armenian PHPMailer language file: refer to English translation for definitive list
|
* Armenian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indonesian PHPMailer language file: refer to English translation for definitive list
|
* Indonesian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
* @author Cecep Prawiro <cecep.prawiro@gmail.com>
|
* @author Cecep Prawiro <cecep.prawiro@gmail.com>
|
||||||
* @author @januridp
|
* @author @januridp
|
||||||
|
* @author Ian Mustafa <mail@ianmustafa.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'Kesalahan SMTP: Tidak dapat mengotentikasi.';
|
$PHPMAILER_LANG['authenticate'] = 'Kesalahan SMTP: Tidak dapat mengotentikasi.';
|
||||||
@@ -13,15 +15,17 @@ $PHPMAILER_LANG['empty_message'] = 'Isi pesan kosong';
|
|||||||
$PHPMAILER_LANG['encoding'] = 'Pengkodean karakter tidak dikenali: ';
|
$PHPMAILER_LANG['encoding'] = 'Pengkodean karakter tidak dikenali: ';
|
||||||
$PHPMAILER_LANG['execute'] = 'Tidak dapat menjalankan proses: ';
|
$PHPMAILER_LANG['execute'] = 'Tidak dapat menjalankan proses: ';
|
||||||
$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses berkas: ';
|
$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses berkas: ';
|
||||||
$PHPMAILER_LANG['file_open'] = 'Kesalahan File: Berkas tidak dapat dibuka : ';
|
$PHPMAILER_LANG['file_open'] = 'Kesalahan Berkas: Berkas tidak dapat dibuka: ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'Alamat pengirim berikut mengakibatkan kesalahan: ';
|
$PHPMAILER_LANG['from_failed'] = 'Alamat pengirim berikut mengakibatkan kesalahan: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Tidak dapat menginisialisasi fungsi surel';
|
$PHPMAILER_LANG['instantiate'] = 'Tidak dapat menginisialisasi fungsi surel.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Gagal terkirim, alamat surel tidak benar : ';
|
$PHPMAILER_LANG['invalid_address'] = 'Gagal terkirim, alamat surel tidak sesuai: ';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Harus disediakan minimal satu alamat tujuan';
|
$PHPMAILER_LANG['invalid_hostentry'] = 'Gagal terkirim, entri host tidak sesuai: ';
|
||||||
|
$PHPMAILER_LANG['invalid_host'] = 'Gagal terkirim, host tidak sesuai: ';
|
||||||
|
$PHPMAILER_LANG['provide_address'] = 'Harus tersedia minimal satu alamat tujuan';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'Kesalahan SMTP: Alamat tujuan berikut menghasilkan kesalahan : ';
|
$PHPMAILER_LANG['recipients_failed'] = 'Kesalahan SMTP: Alamat tujuan berikut menyebabkan kesalahan: ';
|
||||||
$PHPMAILER_LANG['signing'] = 'Kesalahan dalam tanda tangan : ';
|
$PHPMAILER_LANG['signing'] = 'Kesalahan dalam penandatangan SSL: ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() gagal.';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() gagal.';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'Kesalahan pada pelayan SMTP: ';
|
$PHPMAILER_LANG['smtp_error'] = 'Kesalahan pada pelayan SMTP: ';
|
||||||
$PHPMAILER_LANG['variable_set'] = 'Tidak dapat mengatur atau mengatur ulang variable : ';
|
$PHPMAILER_LANG['variable_set'] = 'Tidak dapat mengatur atau mengatur ulang variabel: ';
|
||||||
$PHPMAILER_LANG['extension_missing'] = 'Ekstensi hilang: ';
|
$PHPMAILER_LANG['extension_missing'] = 'Ekstensi PHP tidak tersedia: ';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Italian PHPMailer language file: refer to English translation for definitive list
|
* Italian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,27 +1,29 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Japanese PHPMailer language file: refer to English translation for definitive list
|
* Japanese PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
* @author Mitsuhiro Yoshida <http://mitstek.com/>
|
* @author Mitsuhiro Yoshida <http://mitstek.com/>
|
||||||
* @author Yoshi Sakai <http://bluemooninc.jp/>
|
* @author Yoshi Sakai <http://bluemooninc.jp/>
|
||||||
|
* @author Arisophy <https://github.com/arisophy/>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。';
|
$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。';
|
||||||
$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。';
|
$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。';
|
||||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。';
|
$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。';
|
||||||
//$PHPMAILER_LANG['empty_message'] = 'Message body empty';
|
$PHPMAILER_LANG['empty_message'] = 'メール本文が空です。';
|
||||||
$PHPMAILER_LANG['encoding'] = '不明なエンコーディング: ';
|
$PHPMAILER_LANG['encoding'] = '不明なエンコーディング: ';
|
||||||
$PHPMAILER_LANG['execute'] = '実行できませんでした: ';
|
$PHPMAILER_LANG['execute'] = '実行できませんでした: ';
|
||||||
$PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: ';
|
$PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: ';
|
||||||
$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: ';
|
$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: ';
|
$PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。';
|
$PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。';
|
||||||
//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: ';
|
$PHPMAILER_LANG['invalid_address'] = '不正なメールアドレス: ';
|
||||||
$PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。';
|
$PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: ';
|
||||||
//$PHPMAILER_LANG['signing'] = 'Signing Error: ';
|
$PHPMAILER_LANG['signing'] = '署名エラー: ';
|
||||||
//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP接続に失敗しました。';
|
||||||
//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
|
$PHPMAILER_LANG['smtp_error'] = 'SMTPサーバーエラー: ';
|
||||||
//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: ';
|
$PHPMAILER_LANG['variable_set'] = '変数が存在しません: ';
|
||||||
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';
|
$PHPMAILER_LANG['extension_missing'] = '拡張機能が見つかりません: ';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Georgian PHPMailer language file: refer to English translation for definitive list
|
* Georgian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Korean PHPMailer language file: refer to English translation for definitive list
|
* Korean PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lithuanian PHPMailer language file: refer to English translation for definitive list
|
* Lithuanian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Latvian PHPMailer language file: refer to English translation for definitive list
|
* Latvian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Malagasy PHPMailer language file: refer to English translation for definitive list
|
* Malagasy PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
* @author Hackinet <piyushjha8164@gmail.com>
|
* @author Hackinet <piyushjha8164@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.';
|
$PHPMAILER_LANG['authenticate'] = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.';
|
||||||
$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.';
|
$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.';
|
||||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP diso: tsy voarakitra ny angona.';
|
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP diso: tsy voarakitra ny angona.';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Malaysian PHPMailer language file: refer to English translation for definitive list
|
* Malaysian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Norwegian Bokmål PHPMailer language file: refer to English translation for definitive list
|
* Norwegian Bokmål PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dutch PHPMailer language file: refer to PHPMailer.php for definitive list.
|
* Dutch PHPMailer language file: refer to PHPMailer.php for definitive list.
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
@@ -6,23 +7,28 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.';
|
$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.';
|
||||||
|
$PHPMAILER_LANG['buggy_php'] = 'PHP versie gededecteerd die onderhavig is aan een bug die kan resulteren in gecorrumpeerde berichten. Om dit te voorkomen, gebruik SMTP voor het verzenden van berichten, zet de mail.add_x_header optie in uw php.ini file uit, gebruik MacOS of Linux, of pas de gebruikte PHP versie aan naar versie 7.0.17+ or 7.1.3+.';
|
||||||
$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.';
|
$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.';
|
||||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.';
|
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.';
|
||||||
$PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg';
|
$PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg';
|
||||||
$PHPMAILER_LANG['encoding'] = 'Onbekende codering: ';
|
$PHPMAILER_LANG['encoding'] = 'Onbekende codering: ';
|
||||||
$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: ';
|
$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: ';
|
||||||
|
$PHPMAILER_LANG['extension_missing'] = 'Extensie afwezig: ';
|
||||||
$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: ';
|
$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: ';
|
||||||
$PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: ';
|
$PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: ';
|
$PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.';
|
$PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres: ';
|
$PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres: ';
|
||||||
|
$PHPMAILER_LANG['invalid_header'] = 'Ongeldige header naam of waarde';
|
||||||
$PHPMAILER_LANG['invalid_hostentry'] = 'Ongeldige hostentry: ';
|
$PHPMAILER_LANG['invalid_hostentry'] = 'Ongeldige hostentry: ';
|
||||||
$PHPMAILER_LANG['invalid_host'] = 'Ongeldige host: ';
|
$PHPMAILER_LANG['invalid_host'] = 'Ongeldige host: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.';
|
$PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: ';
|
||||||
$PHPMAILER_LANG['signing'] = 'Signeerfout: ';
|
$PHPMAILER_LANG['signing'] = 'Signeerfout: ';
|
||||||
|
$PHPMAILER_LANG['smtp_code'] = 'SMTP code: ';
|
||||||
|
$PHPMAILER_LANG['smtp_code_ex'] = 'Aanvullende SMTP informatie: ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.';
|
||||||
|
$PHPMAILER_LANG['smtp_detail'] = 'Detail: ';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: ';
|
$PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: ';
|
||||||
$PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: ';
|
$PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: ';
|
||||||
$PHPMAILER_LANG['extension_missing'] = 'Extensie afwezig: ';
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Polish PHPMailer language file: refer to English translation for definitive list
|
* Polish PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Portuguese (European) PHPMailer language file: refer to English translation for definitive list
|
* Portuguese (European) PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list
|
* Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
@@ -6,24 +7,32 @@
|
|||||||
* @author Lucas Guimarães <lucas@lucasguimaraes.com>
|
* @author Lucas Guimarães <lucas@lucasguimaraes.com>
|
||||||
* @author Phelipe Alves <phelipealvesdesouza@gmail.com>
|
* @author Phelipe Alves <phelipealvesdesouza@gmail.com>
|
||||||
* @author Fabio Beneditto <fabiobeneditto@gmail.com>
|
* @author Fabio Beneditto <fabiobeneditto@gmail.com>
|
||||||
|
* @author Geidson Benício Coelho <geidsonc@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possível autenticar.';
|
$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possível autenticar.';
|
||||||
|
$PHPMAILER_LANG['buggy_php'] = 'Sua versão do PHP é afetada por um bug que por resultar em messagens corrompidas. Para corrigir, mude para enviar usando SMTP, desative a opção mail.add_x_header em seu php.ini, mude para MacOS ou Linux, ou atualize seu PHP para versão 7.0.17+ ou 7.1.3+ ';
|
||||||
$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possível conectar ao servidor SMTP.';
|
$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possível conectar ao servidor SMTP.';
|
||||||
$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados rejeitados.';
|
$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados rejeitados.';
|
||||||
$PHPMAILER_LANG['empty_message'] = 'Mensagem vazia';
|
$PHPMAILER_LANG['empty_message'] = 'Mensagem vazia';
|
||||||
$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: ';
|
$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: ';
|
||||||
$PHPMAILER_LANG['execute'] = 'Não foi possível executar: ';
|
$PHPMAILER_LANG['execute'] = 'Não foi possível executar: ';
|
||||||
|
$PHPMAILER_LANG['extension_missing'] = 'Extensão não existe: ';
|
||||||
$PHPMAILER_LANG['file_access'] = 'Não foi possível acessar o arquivo: ';
|
$PHPMAILER_LANG['file_access'] = 'Não foi possível acessar o arquivo: ';
|
||||||
$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possível abrir o arquivo: ';
|
$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possível abrir o arquivo: ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'Os seguintes remetentes falharam: ';
|
$PHPMAILER_LANG['from_failed'] = 'Os seguintes remetentes falharam: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Não foi possível instanciar a função mail.';
|
$PHPMAILER_LANG['instantiate'] = 'Não foi possível instanciar a função mail.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Endereço de e-mail inválido: ';
|
$PHPMAILER_LANG['invalid_address'] = 'Endereço de e-mail inválido: ';
|
||||||
|
$PHPMAILER_LANG['invalid_header'] = 'Nome ou valor de cabeçalho inválido';
|
||||||
|
$PHPMAILER_LANG['invalid_hostentry'] = 'hostentry inválido: ';
|
||||||
|
$PHPMAILER_LANG['invalid_host'] = 'host inválido: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Você deve informar pelo menos um destinatário.';
|
$PHPMAILER_LANG['provide_address'] = 'Você deve informar pelo menos um destinatário.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os seguintes destinatários falharam: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os seguintes destinatários falharam: ';
|
||||||
$PHPMAILER_LANG['signing'] = 'Erro de Assinatura: ';
|
$PHPMAILER_LANG['signing'] = 'Erro de Assinatura: ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.';
|
||||||
|
$PHPMAILER_LANG['smtp_code'] = 'Código do servidor SMTP: ';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: ';
|
$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: ';
|
||||||
|
$PHPMAILER_LANG['smtp_code_ex'] = 'Informações adicionais do servidor SMTP: ';
|
||||||
|
$PHPMAILER_LANG['smtp_detail'] = 'Detalhes do servidor SMTP: ';
|
||||||
$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: ';
|
$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: ';
|
||||||
$PHPMAILER_LANG['extension_missing'] = 'Extensão não existe: ';
|
|
||||||
|
|||||||
@@ -1,26 +1,33 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Romanian PHPMailer language file: refer to English translation for definitive list
|
* Romanian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
* @author Alex Florea <alecz.fia@gmail.com>
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Autentificarea a eșuat.';
|
$PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Autentificarea a eșuat.';
|
||||||
|
$PHPMAILER_LANG['buggy_php'] = 'Versiunea instalată de PHP este afectată de o problemă care poate duce la coruperea mesajelor Pentru a preveni această problemă, folosiți SMTP, dezactivați opțiunea mail.add_x_header din php.ini, folosiți MacOS/Linux sau actualizați versiunea de PHP la 7.0.17+ sau 7.1.3+.';
|
||||||
$PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Conectarea la serverul SMTP a eșuat.';
|
$PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Conectarea la serverul SMTP a eșuat.';
|
||||||
$PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Datele nu au fost acceptate.';
|
$PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Datele nu au fost acceptate.';
|
||||||
$PHPMAILER_LANG['empty_message'] = 'Mesajul este gol.';
|
$PHPMAILER_LANG['empty_message'] = 'Mesajul este gol.';
|
||||||
$PHPMAILER_LANG['encoding'] = 'Encodare necunoscută: ';
|
$PHPMAILER_LANG['encoding'] = 'Encodare necunoscută: ';
|
||||||
$PHPMAILER_LANG['execute'] = 'Nu se poate executa următoarea comandă: ';
|
$PHPMAILER_LANG['execute'] = 'Nu se poate executa următoarea comandă: ';
|
||||||
|
$PHPMAILER_LANG['extension_missing'] = 'Lipsește extensia: ';
|
||||||
$PHPMAILER_LANG['file_access'] = 'Nu se poate accesa următorul fișier: ';
|
$PHPMAILER_LANG['file_access'] = 'Nu se poate accesa următorul fișier: ';
|
||||||
$PHPMAILER_LANG['file_open'] = 'Eroare fișier: Nu se poate deschide următorul fișier: ';
|
$PHPMAILER_LANG['file_open'] = 'Eroare fișier: Nu se poate deschide următorul fișier: ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'Următoarele adrese From au dat eroare: ';
|
$PHPMAILER_LANG['from_failed'] = 'Următoarele adrese From au dat eroare: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Funcția mail nu a putut fi inițializată.';
|
$PHPMAILER_LANG['instantiate'] = 'Funcția mail nu a putut fi inițializată.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Adresa de email nu este validă: ';
|
$PHPMAILER_LANG['invalid_address'] = 'Adresa de email nu este validă: ';
|
||||||
|
$PHPMAILER_LANG['invalid_header'] = 'Numele sau valoarea header-ului nu este validă: ';
|
||||||
|
$PHPMAILER_LANG['invalid_hostentry'] = 'Hostentry invalid: ';
|
||||||
|
$PHPMAILER_LANG['invalid_host'] = 'Host invalid: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Trebuie să adăugați cel puțin o adresă de email.';
|
$PHPMAILER_LANG['provide_address'] = 'Trebuie să adăugați cel puțin o adresă de email.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Următoarele adrese de email au eșuat: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Următoarele adrese de email au eșuat: ';
|
||||||
$PHPMAILER_LANG['signing'] = 'A aparut o problemă la semnarea emailului. ';
|
$PHPMAILER_LANG['signing'] = 'A aparut o problemă la semnarea emailului. ';
|
||||||
|
$PHPMAILER_LANG['smtp_code'] = 'Cod SMTP: ';
|
||||||
|
$PHPMAILER_LANG['smtp_code_ex'] = 'Informații SMTP adiționale: ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Conectarea la serverul SMTP a eșuat.';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'Conectarea la serverul SMTP a eșuat.';
|
||||||
|
$PHPMAILER_LANG['smtp_detail'] = 'Detalii SMTP: ';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'Eroare server SMTP: ';
|
$PHPMAILER_LANG['smtp_error'] = 'Eroare server SMTP: ';
|
||||||
$PHPMAILER_LANG['variable_set'] = 'Nu se poate seta/reseta variabila. ';
|
$PHPMAILER_LANG['variable_set'] = 'Nu se poate seta/reseta variabila. ';
|
||||||
$PHPMAILER_LANG['extension_missing'] = 'Lipsește extensia: ';
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Russian PHPMailer language file: refer to English translation for definitive list
|
* Russian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Slovak PHPMailer language file: refer to English translation for definitive list
|
* Slovak PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
@@ -17,6 +18,8 @@ $PHPMAILER_LANG['file_open'] = 'File Error: Súbor sa otvoriť pre č
|
|||||||
$PHPMAILER_LANG['from_failed'] = 'Následujúca adresa From je nesprávna: ';
|
$PHPMAILER_LANG['from_failed'] = 'Následujúca adresa From je nesprávna: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Nedá sa vytvoriť inštancia emailovej funkcie.';
|
$PHPMAILER_LANG['instantiate'] = 'Nedá sa vytvoriť inštancia emailovej funkcie.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Neodoslané, emailová adresa je nesprávna: ';
|
$PHPMAILER_LANG['invalid_address'] = 'Neodoslané, emailová adresa je nesprávna: ';
|
||||||
|
$PHPMAILER_LANG['invalid_hostentry'] = 'Záznam hostiteľa je nesprávny: ';
|
||||||
|
$PHPMAILER_LANG['invalid_host'] = 'Hostiteľ je nesprávny: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.';
|
$PHPMAILER_LANG['provide_address'] = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy príjemcov niesu správne ';
|
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy príjemcov niesu správne ';
|
||||||
|
|||||||
@@ -1,27 +1,36 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Slovene PHPMailer language file: refer to English translation for definitive list
|
* Slovene PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
* @author Klemen Tušar <techouse@gmail.com>
|
* @author Klemen Tušar <techouse@gmail.com>
|
||||||
* @author Filip Š <projects@filips.si>
|
* @author Filip Š <projects@filips.si>
|
||||||
|
* @author Blaž Oražem <blaz@orazem.si>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'SMTP napaka: Avtentikacija ni uspela.';
|
$PHPMAILER_LANG['authenticate'] = 'SMTP napaka: Avtentikacija ni uspela.';
|
||||||
|
$PHPMAILER_LANG['buggy_php'] = 'Na vašo PHP različico vpliva napaka, ki lahko povzroči poškodovana sporočila. Če želite težavo odpraviti, preklopite na pošiljanje prek SMTP, onemogočite možnost mail.add_x_header v vaši php.ini datoteki, preklopite na MacOS ali Linux, ali nadgradite vašo PHP zaličico na 7.0.17+ ali 7.1.3+.';
|
||||||
$PHPMAILER_LANG['connect_host'] = 'SMTP napaka: Vzpostavljanje povezave s SMTP gostiteljem ni uspelo.';
|
$PHPMAILER_LANG['connect_host'] = 'SMTP napaka: Vzpostavljanje povezave s SMTP gostiteljem ni uspelo.';
|
||||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP napaka: Strežnik zavrača podatke.';
|
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP napaka: Strežnik zavrača podatke.';
|
||||||
$PHPMAILER_LANG['empty_message'] = 'E-poštno sporočilo nima vsebine.';
|
$PHPMAILER_LANG['empty_message'] = 'E-poštno sporočilo nima vsebine.';
|
||||||
$PHPMAILER_LANG['encoding'] = 'Nepoznan tip kodiranja: ';
|
$PHPMAILER_LANG['encoding'] = 'Nepoznan tip kodiranja: ';
|
||||||
$PHPMAILER_LANG['execute'] = 'Operacija ni uspela: ';
|
$PHPMAILER_LANG['execute'] = 'Operacija ni uspela: ';
|
||||||
|
$PHPMAILER_LANG['extension_missing'] = 'Manjkajoča razširitev: ';
|
||||||
$PHPMAILER_LANG['file_access'] = 'Nimam dostopa do datoteke: ';
|
$PHPMAILER_LANG['file_access'] = 'Nimam dostopa do datoteke: ';
|
||||||
$PHPMAILER_LANG['file_open'] = 'Ne morem odpreti datoteke: ';
|
$PHPMAILER_LANG['file_open'] = 'Ne morem odpreti datoteke: ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'Neveljaven e-naslov pošiljatelja: ';
|
$PHPMAILER_LANG['from_failed'] = 'Neveljaven e-naslov pošiljatelja: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Ne morem inicializirati mail funkcije.';
|
$PHPMAILER_LANG['instantiate'] = 'Ne morem inicializirati mail funkcije.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: ';
|
$PHPMAILER_LANG['invalid_address'] = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: ';
|
||||||
|
$PHPMAILER_LANG['invalid_header'] = 'Neveljavno ime ali vrednost glave';
|
||||||
|
$PHPMAILER_LANG['invalid_hostentry'] = 'Neveljaven vnos gostitelja: ';
|
||||||
|
$PHPMAILER_LANG['invalid_host'] = 'Neveljaven gostitelj: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Prosim vnesite vsaj enega naslovnika.';
|
$PHPMAILER_LANG['provide_address'] = 'Prosimo, vnesite vsaj enega naslovnika.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP napaka: Sledeči naslovniki so neveljavni: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'SMTP napaka: Sledeči naslovniki so neveljavni: ';
|
||||||
$PHPMAILER_LANG['signing'] = 'Napaka pri podpisovanju: ';
|
$PHPMAILER_LANG['signing'] = 'Napaka pri podpisovanju: ';
|
||||||
|
$PHPMAILER_LANG['smtp_code'] = 'SMTP koda: ';
|
||||||
|
$PHPMAILER_LANG['smtp_code_ex'] = 'Dodatne informacije o SMTP: ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Ne morem vzpostaviti povezave s SMTP strežnikom.';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'Ne morem vzpostaviti povezave s SMTP strežnikom.';
|
||||||
|
$PHPMAILER_LANG['smtp_detail'] = 'Podrobnosti: ';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'Napaka SMTP strežnika: ';
|
$PHPMAILER_LANG['smtp_error'] = 'Napaka SMTP strežnika: ';
|
||||||
$PHPMAILER_LANG['variable_set'] = 'Ne morem nastaviti oz. ponastaviti spremenljivke: ';
|
$PHPMAILER_LANG['variable_set'] = 'Ne morem nastaviti oz. ponastaviti spremenljivke: ';
|
||||||
$PHPMAILER_LANG['extension_missing'] = 'Manjkajoča razširitev: ';
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serbian PHPMailer language file: refer to English translation for definitive list
|
* Serbian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Swedish PHPMailer language file: refer to English translation for definitive list
|
* Swedish PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,27 +1,28 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tagalog PHPMailer language file: refer to English translation for definitive list
|
* Tagalog PHPMailer language file: refer to English translation for definitive list
|
||||||
*
|
*
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
* @author Adriane Justine Tan <adrianetan12@gmail.com>
|
* @author Adriane Justine Tan <eidoriantan@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Hindi mapatotohanan.';
|
$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Hindi mapatotohanan.';
|
||||||
$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Hindi makakonekta sa SMTP host.';
|
$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Hindi makakonekta sa SMTP host.';
|
||||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Ang datos ay hindi maaaring matatanggap.';
|
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Ang datos ay hindi naitanggap.';
|
||||||
$PHPMAILER_LANG['empty_message'] = 'Walang laman ang mensahe';
|
$PHPMAILER_LANG['empty_message'] = 'Walang laman ang mensahe';
|
||||||
$PHPMAILER_LANG['encoding'] = 'Hindi alam ang encoding: ';
|
$PHPMAILER_LANG['encoding'] = 'Hindi alam ang encoding: ';
|
||||||
$PHPMAILER_LANG['execute'] = 'Hindi maisasagawa: ';
|
$PHPMAILER_LANG['execute'] = 'Hindi maisasagawa: ';
|
||||||
$PHPMAILER_LANG['file_access'] = 'Hindi ma-access ang file: ';
|
$PHPMAILER_LANG['file_access'] = 'Hindi ma-access ang file: ';
|
||||||
$PHPMAILER_LANG['file_open'] = 'Hindi mabuksan ang file: ';
|
$PHPMAILER_LANG['file_open'] = 'File Error: Hindi mabuksan ang file: ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'Ang sumusunod na address ay nabigo: ';
|
$PHPMAILER_LANG['from_failed'] = 'Ang sumusunod na address ay nabigo: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Hindi maaaring magbigay ng institusyon ang mail';
|
$PHPMAILER_LANG['instantiate'] = 'Hindi maisimulan ang instance ng mail function.';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Hindi wasto ang address na naibigay: ';
|
$PHPMAILER_LANG['invalid_address'] = 'Hindi wasto ang address na naibigay: ';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado';
|
$PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado.';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Kailangan mong magbigay ng kahit isang email address na tatanggap';
|
$PHPMAILER_LANG['provide_address'] = 'Kailangan mong magbigay ng kahit isang email address na tatanggap.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: ';
|
||||||
$PHPMAILER_LANG['signing'] = 'Hindi ma-sign';
|
$PHPMAILER_LANG['signing'] = 'Hindi ma-sign: ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Ang SMTP connect() ay nabigo';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'Ang SMTP connect() ay nabigo.';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'Ang server ng SMTP ay nabigo';
|
$PHPMAILER_LANG['smtp_error'] = 'Ang server ng SMTP ay nabigo: ';
|
||||||
$PHPMAILER_LANG['variable_set'] = 'Hindi matatakda ang mga variables: ';
|
$PHPMAILER_LANG['variable_set'] = 'Hindi matatakda o ma-reset ang mga variables: ';
|
||||||
$PHPMAILER_LANG['extension_missing'] = 'Nawawala ang extension';
|
$PHPMAILER_LANG['extension_missing'] = 'Nawawala ang extension: ';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Turkish PHPMailer language file: refer to English translation for definitive list
|
* Turkish PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ukrainian PHPMailer language file: refer to English translation for definitive list
|
* Ukrainian PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
@@ -15,11 +16,11 @@ $PHPMAILER_LANG['file_access'] = 'Немає доступу до фай
|
|||||||
$PHPMAILER_LANG['file_open'] = 'Помилка файлової системи: не вдається відкрити файл: ';
|
$PHPMAILER_LANG['file_open'] = 'Помилка файлової системи: не вдається відкрити файл: ';
|
||||||
$PHPMAILER_LANG['from_failed'] = 'Невірна адреса відправника: ';
|
$PHPMAILER_LANG['from_failed'] = 'Невірна адреса відправника: ';
|
||||||
$PHPMAILER_LANG['instantiate'] = 'Неможливо запустити функцію mail().';
|
$PHPMAILER_LANG['instantiate'] = 'Неможливо запустити функцію mail().';
|
||||||
$PHPMAILER_LANG['provide_address'] = 'Будь-ласка, введіть хоча б одну email-адресу отримувача.';
|
$PHPMAILER_LANG['provide_address'] = 'Будь ласка, введіть хоча б одну email-адресу отримувача.';
|
||||||
$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.';
|
$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.';
|
||||||
$PHPMAILER_LANG['recipients_failed'] = 'Помилка SMTP: не вдалося відправлення для таких отримувачів: ';
|
$PHPMAILER_LANG['recipients_failed'] = 'Помилка SMTP: не вдалося відправлення для таких отримувачів: ';
|
||||||
$PHPMAILER_LANG['empty_message'] = 'Пусте повідомлення';
|
$PHPMAILER_LANG['empty_message'] = 'Пусте повідомлення';
|
||||||
$PHPMAILER_LANG['invalid_address'] = 'Не відправлено через невірний формат email-адреси: ';
|
$PHPMAILER_LANG['invalid_address'] = 'Не відправлено через неправильний формат email-адреси: ';
|
||||||
$PHPMAILER_LANG['signing'] = 'Помилка підпису: ';
|
$PHPMAILER_LANG['signing'] = 'Помилка підпису: ';
|
||||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Помилка з\'єднання з SMTP-сервером';
|
$PHPMAILER_LANG['smtp_connect_failed'] = 'Помилка з\'єднання з SMTP-сервером';
|
||||||
$PHPMAILER_LANG['smtp_error'] = 'Помилка SMTP-сервера: ';
|
$PHPMAILER_LANG['smtp_error'] = 'Помилка SMTP-сервера: ';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Vietnamese (Tiếng Việt) PHPMailer language file: refer to English translation for definitive list.
|
* Vietnamese (Tiếng Việt) PHPMailer language file: refer to English translation for definitive list.
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Traditional Chinese PHPMailer language file: refer to English translation for definitive list
|
* Traditional Chinese PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simplified Chinese PHPMailer language file: refer to English translation for definitive list
|
* Simplified Chinese PHPMailer language file: refer to English translation for definitive list
|
||||||
* @package PHPMailer
|
* @package PHPMailer
|
||||||
|
|||||||
5
vendor/phpmailer/phpmailer/src/Exception.php
vendored
5
vendor/phpmailer/phpmailer/src/Exception.php
vendored
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHPMailer Exception class.
|
* PHPMailer Exception class.
|
||||||
* PHP Version 5.5.
|
* PHP Version 5.5.
|
||||||
@@ -9,7 +10,7 @@
|
|||||||
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
||||||
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
||||||
* @author Brent R. Matzelle (original founder)
|
* @author Brent R. Matzelle (original founder)
|
||||||
* @copyright 2012 - 2017 Marcus Bointon
|
* @copyright 2012 - 2020 Marcus Bointon
|
||||||
* @copyright 2010 - 2012 Jim Jagielski
|
* @copyright 2010 - 2012 Jim Jagielski
|
||||||
* @copyright 2004 - 2009 Andy Prevost
|
* @copyright 2004 - 2009 Andy Prevost
|
||||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||||
@@ -34,6 +35,6 @@ class Exception extends \Exception
|
|||||||
*/
|
*/
|
||||||
public function errorMessage()
|
public function errorMessage()
|
||||||
{
|
{
|
||||||
return '<strong>' . htmlspecialchars($this->getMessage()) . "</strong><br />\n";
|
return '<strong>' . htmlspecialchars($this->getMessage(), ENT_COMPAT | ENT_HTML401) . "</strong><br />\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
5
vendor/phpmailer/phpmailer/src/OAuth.php
vendored
5
vendor/phpmailer/phpmailer/src/OAuth.php
vendored
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHPMailer - PHP email creation and transport class.
|
* PHPMailer - PHP email creation and transport class.
|
||||||
* PHP Version 5.5.
|
* PHP Version 5.5.
|
||||||
@@ -9,7 +10,7 @@
|
|||||||
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
||||||
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
||||||
* @author Brent R. Matzelle (original founder)
|
* @author Brent R. Matzelle (original founder)
|
||||||
* @copyright 2012 - 2015 Marcus Bointon
|
* @copyright 2012 - 2020 Marcus Bointon
|
||||||
* @copyright 2010 - 2012 Jim Jagielski
|
* @copyright 2010 - 2012 Jim Jagielski
|
||||||
* @copyright 2004 - 2009 Andy Prevost
|
* @copyright 2004 - 2009 Andy Prevost
|
||||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||||
@@ -32,7 +33,7 @@ use League\OAuth2\Client\Token\AccessToken;
|
|||||||
*
|
*
|
||||||
* @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
|
* @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
|
||||||
*/
|
*/
|
||||||
class OAuth
|
class OAuth implements OAuthTokenProvider
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* An instance of the League OAuth Client Provider.
|
* An instance of the League OAuth Client Provider.
|
||||||
|
|||||||
475
vendor/phpmailer/phpmailer/src/PHPMailer.php
vendored
475
vendor/phpmailer/phpmailer/src/PHPMailer.php
vendored
File diff suppressed because it is too large
Load Diff
61
vendor/phpmailer/phpmailer/src/POP3.php
vendored
61
vendor/phpmailer/phpmailer/src/POP3.php
vendored
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHPMailer POP-Before-SMTP Authentication Class.
|
* PHPMailer POP-Before-SMTP Authentication Class.
|
||||||
* PHP Version 5.5.
|
* PHP Version 5.5.
|
||||||
@@ -9,7 +10,7 @@
|
|||||||
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
||||||
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
||||||
* @author Brent R. Matzelle (original founder)
|
* @author Brent R. Matzelle (original founder)
|
||||||
* @copyright 2012 - 2019 Marcus Bointon
|
* @copyright 2012 - 2020 Marcus Bointon
|
||||||
* @copyright 2010 - 2012 Jim Jagielski
|
* @copyright 2010 - 2012 Jim Jagielski
|
||||||
* @copyright 2004 - 2009 Andy Prevost
|
* @copyright 2004 - 2009 Andy Prevost
|
||||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||||
@@ -45,7 +46,7 @@ class POP3
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
const VERSION = '6.1.6';
|
const VERSION = '6.6.0';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default POP3 port number.
|
* Default POP3 port number.
|
||||||
@@ -62,12 +63,16 @@ class POP3
|
|||||||
const DEFAULT_TIMEOUT = 30;
|
const DEFAULT_TIMEOUT = 30;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debug display level.
|
* POP3 class debug output mode.
|
||||||
* Options: 0 = no, 1+ = yes.
|
* Debug output level.
|
||||||
|
* Options:
|
||||||
|
* @see POP3::DEBUG_OFF: No output
|
||||||
|
* @see POP3::DEBUG_SERVER: Server messages, connection/server errors
|
||||||
|
* @see POP3::DEBUG_CLIENT: Client and Server messages, connection/server errors
|
||||||
*
|
*
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
public $do_debug = 0;
|
public $do_debug = self::DEBUG_OFF;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* POP3 mail server hostname.
|
* POP3 mail server hostname.
|
||||||
@@ -130,6 +135,28 @@ class POP3
|
|||||||
*/
|
*/
|
||||||
const LE = "\r\n";
|
const LE = "\r\n";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Debug level for no output.
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
const DEBUG_OFF = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Debug level to show server -> client messages
|
||||||
|
* also shows clients connection errors or errors from server
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
const DEBUG_SERVER = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Debug level to show client -> server and server -> client messages.
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
const DEBUG_CLIENT = 2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple static wrapper for all-in-one POP before SMTP.
|
* Simple static wrapper for all-in-one POP before SMTP.
|
||||||
*
|
*
|
||||||
@@ -189,7 +216,7 @@ class POP3
|
|||||||
$this->password = $password;
|
$this->password = $password;
|
||||||
//Reset the error log
|
//Reset the error log
|
||||||
$this->errors = [];
|
$this->errors = [];
|
||||||
// connect
|
//Connect
|
||||||
$result = $this->connect($this->host, $this->port, $this->tval);
|
$result = $this->connect($this->host, $this->port, $this->tval);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$login_result = $this->login($this->username, $this->password);
|
$login_result = $this->login($this->username, $this->password);
|
||||||
@@ -229,7 +256,7 @@ class POP3
|
|||||||
$port = static::DEFAULT_PORT;
|
$port = static::DEFAULT_PORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
// connect to the POP3 server
|
//Connect to the POP3 server
|
||||||
$errno = 0;
|
$errno = 0;
|
||||||
$errstr = '';
|
$errstr = '';
|
||||||
$this->pop_conn = fsockopen(
|
$this->pop_conn = fsockopen(
|
||||||
@@ -281,6 +308,7 @@ class POP3
|
|||||||
{
|
{
|
||||||
if (!$this->connected) {
|
if (!$this->connected) {
|
||||||
$this->setError('Not connected to POP3 server');
|
$this->setError('Not connected to POP3 server');
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
if (empty($username)) {
|
if (empty($username)) {
|
||||||
$username = $this->username;
|
$username = $this->username;
|
||||||
@@ -310,6 +338,15 @@ class POP3
|
|||||||
public function disconnect()
|
public function disconnect()
|
||||||
{
|
{
|
||||||
$this->sendString('QUIT');
|
$this->sendString('QUIT');
|
||||||
|
|
||||||
|
// RFC 1939 shows POP3 server sending a +OK response to the QUIT command.
|
||||||
|
// Try to get it. Ignore any failures here.
|
||||||
|
try {
|
||||||
|
$this->getResponse();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
//Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
//The QUIT command may cause the daemon to exit, which will kill our connection
|
//The QUIT command may cause the daemon to exit, which will kill our connection
|
||||||
//So ignore errors here
|
//So ignore errors here
|
||||||
try {
|
try {
|
||||||
@@ -317,6 +354,10 @@ class POP3
|
|||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
//Do nothing
|
//Do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Clean up attributes.
|
||||||
|
$this->connected = false;
|
||||||
|
$this->pop_conn = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -329,7 +370,7 @@ class POP3
|
|||||||
protected function getResponse($size = 128)
|
protected function getResponse($size = 128)
|
||||||
{
|
{
|
||||||
$response = fgets($this->pop_conn, $size);
|
$response = fgets($this->pop_conn, $size);
|
||||||
if ($this->do_debug >= 1) {
|
if ($this->do_debug >= self::DEBUG_SERVER) {
|
||||||
echo 'Server -> Client: ', $response;
|
echo 'Server -> Client: ', $response;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,7 +387,7 @@ class POP3
|
|||||||
protected function sendString($string)
|
protected function sendString($string)
|
||||||
{
|
{
|
||||||
if ($this->pop_conn) {
|
if ($this->pop_conn) {
|
||||||
if ($this->do_debug >= 2) { //Show client messages when debug >= 2
|
if ($this->do_debug >= self::DEBUG_CLIENT) { //Show client messages when debug >= 2
|
||||||
echo 'Client -> Server: ', $string;
|
echo 'Client -> Server: ', $string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -384,7 +425,7 @@ class POP3
|
|||||||
protected function setError($error)
|
protected function setError($error)
|
||||||
{
|
{
|
||||||
$this->errors[] = $error;
|
$this->errors[] = $error;
|
||||||
if ($this->do_debug >= 1) {
|
if ($this->do_debug >= self::DEBUG_SERVER) {
|
||||||
echo '<pre>';
|
echo '<pre>';
|
||||||
foreach ($this->errors as $e) {
|
foreach ($this->errors as $e) {
|
||||||
print_r($e);
|
print_r($e);
|
||||||
|
|||||||
149
vendor/phpmailer/phpmailer/src/SMTP.php
vendored
149
vendor/phpmailer/phpmailer/src/SMTP.php
vendored
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHPMailer RFC821 SMTP email transport class.
|
* PHPMailer RFC821 SMTP email transport class.
|
||||||
* PHP Version 5.5.
|
* PHP Version 5.5.
|
||||||
@@ -9,7 +10,7 @@
|
|||||||
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
||||||
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
||||||
* @author Brent R. Matzelle (original founder)
|
* @author Brent R. Matzelle (original founder)
|
||||||
* @copyright 2012 - 2019 Marcus Bointon
|
* @copyright 2012 - 2020 Marcus Bointon
|
||||||
* @copyright 2010 - 2012 Jim Jagielski
|
* @copyright 2010 - 2012 Jim Jagielski
|
||||||
* @copyright 2004 - 2009 Andy Prevost
|
* @copyright 2004 - 2009 Andy Prevost
|
||||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||||
@@ -34,7 +35,7 @@ class SMTP
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
const VERSION = '6.1.6';
|
const VERSION = '6.6.0';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SMTP line break constant.
|
* SMTP line break constant.
|
||||||
@@ -185,6 +186,8 @@ class SMTP
|
|||||||
'Amazon_SES' => '/[\d]{3} Ok (.*)/',
|
'Amazon_SES' => '/[\d]{3} Ok (.*)/',
|
||||||
'SendGrid' => '/[\d]{3} Ok: queued as (.*)/',
|
'SendGrid' => '/[\d]{3} Ok: queued as (.*)/',
|
||||||
'CampaignMonitor' => '/[\d]{3} 2.0.0 OK:([a-zA-Z\d]{48})/',
|
'CampaignMonitor' => '/[\d]{3} 2.0.0 OK:([a-zA-Z\d]{48})/',
|
||||||
|
'Haraka' => '/[\d]{3} Message Queued \((.*)\)/',
|
||||||
|
'Mailjet' => '/[\d]{3} OK queued as (.*)/',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -311,12 +314,6 @@ class SMTP
|
|||||||
*/
|
*/
|
||||||
public function connect($host, $port = null, $timeout = 30, $options = [])
|
public function connect($host, $port = null, $timeout = 30, $options = [])
|
||||||
{
|
{
|
||||||
static $streamok;
|
|
||||||
//This is enabled by default since 5.0.0 but some providers disable it
|
|
||||||
//Check this once and cache the result
|
|
||||||
if (null === $streamok) {
|
|
||||||
$streamok = function_exists('stream_socket_client');
|
|
||||||
}
|
|
||||||
//Clear errors to avoid confusion
|
//Clear errors to avoid confusion
|
||||||
$this->setError('');
|
$this->setError('');
|
||||||
//Make sure we are __not__ connected
|
//Make sure we are __not__ connected
|
||||||
@@ -335,12 +332,60 @@ class SMTP
|
|||||||
(count($options) > 0 ? var_export($options, true) : 'array()'),
|
(count($options) > 0 ? var_export($options, true) : 'array()'),
|
||||||
self::DEBUG_CONNECTION
|
self::DEBUG_CONNECTION
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->smtp_conn = $this->getSMTPConnection($host, $port, $timeout, $options);
|
||||||
|
|
||||||
|
if ($this->smtp_conn === false) {
|
||||||
|
//Error info already set inside `getSMTPConnection()`
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->edebug('Connection: opened', self::DEBUG_CONNECTION);
|
||||||
|
|
||||||
|
//Get any announcement
|
||||||
|
$this->last_reply = $this->get_lines();
|
||||||
|
$this->edebug('SERVER -> CLIENT: ' . $this->last_reply, self::DEBUG_SERVER);
|
||||||
|
$responseCode = (int)substr($this->last_reply, 0, 3);
|
||||||
|
if ($responseCode === 220) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
//Anything other than a 220 response means something went wrong
|
||||||
|
//RFC 5321 says the server will wait for us to send a QUIT in response to a 554 error
|
||||||
|
//https://tools.ietf.org/html/rfc5321#section-3.1
|
||||||
|
if ($responseCode === 554) {
|
||||||
|
$this->quit();
|
||||||
|
}
|
||||||
|
//This will handle 421 responses which may not wait for a QUIT (e.g. if the server is being shut down)
|
||||||
|
$this->edebug('Connection: closing due to error', self::DEBUG_CONNECTION);
|
||||||
|
$this->close();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create connection to the SMTP server.
|
||||||
|
*
|
||||||
|
* @param string $host SMTP server IP or host name
|
||||||
|
* @param int $port The port number to connect to
|
||||||
|
* @param int $timeout How long to wait for the connection to open
|
||||||
|
* @param array $options An array of options for stream_context_create()
|
||||||
|
*
|
||||||
|
* @return false|resource
|
||||||
|
*/
|
||||||
|
protected function getSMTPConnection($host, $port = null, $timeout = 30, $options = [])
|
||||||
|
{
|
||||||
|
static $streamok;
|
||||||
|
//This is enabled by default since 5.0.0 but some providers disable it
|
||||||
|
//Check this once and cache the result
|
||||||
|
if (null === $streamok) {
|
||||||
|
$streamok = function_exists('stream_socket_client');
|
||||||
|
}
|
||||||
|
|
||||||
$errno = 0;
|
$errno = 0;
|
||||||
$errstr = '';
|
$errstr = '';
|
||||||
if ($streamok) {
|
if ($streamok) {
|
||||||
$socket_context = stream_context_create($options);
|
$socket_context = stream_context_create($options);
|
||||||
set_error_handler([$this, 'errorHandler']);
|
set_error_handler([$this, 'errorHandler']);
|
||||||
$this->smtp_conn = stream_socket_client(
|
$connection = stream_socket_client(
|
||||||
$host . ':' . $port,
|
$host . ':' . $port,
|
||||||
$errno,
|
$errno,
|
||||||
$errstr,
|
$errstr,
|
||||||
@@ -348,7 +393,6 @@ class SMTP
|
|||||||
STREAM_CLIENT_CONNECT,
|
STREAM_CLIENT_CONNECT,
|
||||||
$socket_context
|
$socket_context
|
||||||
);
|
);
|
||||||
restore_error_handler();
|
|
||||||
} else {
|
} else {
|
||||||
//Fall back to fsockopen which should work in more places, but is missing some features
|
//Fall back to fsockopen which should work in more places, but is missing some features
|
||||||
$this->edebug(
|
$this->edebug(
|
||||||
@@ -356,17 +400,18 @@ class SMTP
|
|||||||
self::DEBUG_CONNECTION
|
self::DEBUG_CONNECTION
|
||||||
);
|
);
|
||||||
set_error_handler([$this, 'errorHandler']);
|
set_error_handler([$this, 'errorHandler']);
|
||||||
$this->smtp_conn = fsockopen(
|
$connection = fsockopen(
|
||||||
$host,
|
$host,
|
||||||
$port,
|
$port,
|
||||||
$errno,
|
$errno,
|
||||||
$errstr,
|
$errstr,
|
||||||
$timeout
|
$timeout
|
||||||
);
|
);
|
||||||
restore_error_handler();
|
|
||||||
}
|
}
|
||||||
|
restore_error_handler();
|
||||||
|
|
||||||
//Verify we connected properly
|
//Verify we connected properly
|
||||||
if (!is_resource($this->smtp_conn)) {
|
if (!is_resource($connection)) {
|
||||||
$this->setError(
|
$this->setError(
|
||||||
'Failed to connect to server',
|
'Failed to connect to server',
|
||||||
'',
|
'',
|
||||||
@@ -381,22 +426,19 @@ class SMTP
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$this->edebug('Connection: opened', self::DEBUG_CONNECTION);
|
|
||||||
//SMTP server can take longer to respond, give longer timeout for first read
|
//SMTP server can take longer to respond, give longer timeout for first read
|
||||||
//Windows does not have support for this timeout function
|
//Windows does not have support for this timeout function
|
||||||
if (strpos(PHP_OS, 'WIN') !== 0) {
|
if (strpos(PHP_OS, 'WIN') !== 0) {
|
||||||
$max = (int)ini_get('max_execution_time');
|
$max = (int)ini_get('max_execution_time');
|
||||||
// Don't bother if unlimited
|
//Don't bother if unlimited, or if set_time_limit is disabled
|
||||||
if (0 !== $max && $timeout > $max) {
|
if (0 !== $max && $timeout > $max && strpos(ini_get('disable_functions'), 'set_time_limit') === false) {
|
||||||
@set_time_limit($timeout);
|
@set_time_limit($timeout);
|
||||||
}
|
}
|
||||||
stream_set_timeout($this->smtp_conn, $timeout, 0);
|
stream_set_timeout($connection, $timeout, 0);
|
||||||
}
|
}
|
||||||
// Get any announcement
|
|
||||||
$announce = $this->get_lines();
|
|
||||||
$this->edebug('SERVER -> CLIENT: ' . $announce, self::DEBUG_SERVER);
|
|
||||||
|
|
||||||
return true;
|
return $connection;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -441,7 +483,7 @@ class SMTP
|
|||||||
* @param string $username The user name
|
* @param string $username The user name
|
||||||
* @param string $password The password
|
* @param string $password The password
|
||||||
* @param string $authtype The auth type (CRAM-MD5, PLAIN, LOGIN, XOAUTH2)
|
* @param string $authtype The auth type (CRAM-MD5, PLAIN, LOGIN, XOAUTH2)
|
||||||
* @param OAuth $OAuth An optional OAuth instance for XOAUTH2 authentication
|
* @param OAuthTokenProvider $OAuth An optional OAuthTokenProvider instance for XOAUTH2 authentication
|
||||||
*
|
*
|
||||||
* @return bool True if successfully authenticated
|
* @return bool True if successfully authenticated
|
||||||
*/
|
*/
|
||||||
@@ -511,7 +553,10 @@ class SMTP
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//Send encoded username and password
|
//Send encoded username and password
|
||||||
if (!$this->sendCommand(
|
if (
|
||||||
|
//Format from https://tools.ietf.org/html/rfc4616#section-2
|
||||||
|
//We skip the first field (it's forgery), so the string starts with a null byte
|
||||||
|
!$this->sendCommand(
|
||||||
'User & Password',
|
'User & Password',
|
||||||
base64_encode("\0" . $username . "\0" . $password),
|
base64_encode("\0" . $username . "\0" . $password),
|
||||||
235
|
235
|
||||||
@@ -641,7 +686,7 @@ class SMTP
|
|||||||
$this->server_caps = null;
|
$this->server_caps = null;
|
||||||
$this->helo_rply = null;
|
$this->helo_rply = null;
|
||||||
if (is_resource($this->smtp_conn)) {
|
if (is_resource($this->smtp_conn)) {
|
||||||
// close the connection and cleanup
|
//Close the connection and cleanup
|
||||||
fclose($this->smtp_conn);
|
fclose($this->smtp_conn);
|
||||||
$this->smtp_conn = null; //Makes for cleaner serialization
|
$this->smtp_conn = null; //Makes for cleaner serialization
|
||||||
$this->edebug('Connection: closed', self::DEBUG_CONNECTION);
|
$this->edebug('Connection: closed', self::DEBUG_CONNECTION);
|
||||||
@@ -651,7 +696,7 @@ class SMTP
|
|||||||
/**
|
/**
|
||||||
* Send an SMTP DATA command.
|
* Send an SMTP DATA command.
|
||||||
* Issues a data command and sends the msg_data to the server,
|
* Issues a data command and sends the msg_data to the server,
|
||||||
* finializing the mail transaction. $msg_data is the message
|
* finalizing the mail transaction. $msg_data is the message
|
||||||
* that is to be send with the headers. Each header needs to be
|
* that is to be send with the headers. Each header needs to be
|
||||||
* on a single line followed by a <CRLF> with the message headers
|
* on a single line followed by a <CRLF> with the message headers
|
||||||
* and the message body being separated by an additional <CRLF>.
|
* and the message body being separated by an additional <CRLF>.
|
||||||
@@ -722,7 +767,8 @@ class SMTP
|
|||||||
|
|
||||||
//Send the lines to the server
|
//Send the lines to the server
|
||||||
foreach ($lines_out as $line_out) {
|
foreach ($lines_out as $line_out) {
|
||||||
//RFC2821 section 4.5.2
|
//Dot-stuffing as per RFC5321 section 4.5.2
|
||||||
|
//https://tools.ietf.org/html/rfc5321#section-4.5.2
|
||||||
if (!empty($line_out) && $line_out[0] === '.') {
|
if (!empty($line_out) && $line_out[0] === '.') {
|
||||||
$line_out = '.' . $line_out;
|
$line_out = '.' . $line_out;
|
||||||
}
|
}
|
||||||
@@ -756,7 +802,16 @@ class SMTP
|
|||||||
public function hello($host = '')
|
public function hello($host = '')
|
||||||
{
|
{
|
||||||
//Try extended hello first (RFC 2821)
|
//Try extended hello first (RFC 2821)
|
||||||
return $this->sendHello('EHLO', $host) or $this->sendHello('HELO', $host);
|
if ($this->sendHello('EHLO', $host)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Some servers shut down the SMTP service here (RFC 5321)
|
||||||
|
if (substr($this->helo_rply, 0, 3) == '421') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->sendHello('HELO', $host);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1058,8 +1113,10 @@ class SMTP
|
|||||||
{
|
{
|
||||||
//If SMTP transcripts are left enabled, or debug output is posted online
|
//If SMTP transcripts are left enabled, or debug output is posted online
|
||||||
//it can leak credentials, so hide credentials in all but lowest level
|
//it can leak credentials, so hide credentials in all but lowest level
|
||||||
if (self::DEBUG_LOWLEVEL > $this->do_debug &&
|
if (
|
||||||
in_array($command, ['User & Password', 'Username', 'Password'], true)) {
|
self::DEBUG_LOWLEVEL > $this->do_debug &&
|
||||||
|
in_array($command, ['User & Password', 'Username', 'Password'], true)
|
||||||
|
) {
|
||||||
$this->edebug('CLIENT -> SERVER: [credentials hidden]', self::DEBUG_CLIENT);
|
$this->edebug('CLIENT -> SERVER: [credentials hidden]', self::DEBUG_CLIENT);
|
||||||
} else {
|
} else {
|
||||||
$this->edebug('CLIENT -> SERVER: ' . $data, self::DEBUG_CLIENT);
|
$this->edebug('CLIENT -> SERVER: ' . $data, self::DEBUG_CLIENT);
|
||||||
@@ -1113,7 +1170,7 @@ class SMTP
|
|||||||
if (!$this->server_caps) {
|
if (!$this->server_caps) {
|
||||||
$this->setError('No HELO/EHLO was sent');
|
$this->setError('No HELO/EHLO was sent');
|
||||||
|
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!array_key_exists($name, $this->server_caps)) {
|
if (!array_key_exists($name, $this->server_caps)) {
|
||||||
@@ -1125,7 +1182,7 @@ class SMTP
|
|||||||
}
|
}
|
||||||
$this->setError('HELO handshake was used; No information about server extensions available');
|
$this->setError('HELO handshake was used; No information about server extensions available');
|
||||||
|
|
||||||
return;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->server_caps[$name];
|
return $this->server_caps[$name];
|
||||||
@@ -1166,13 +1223,41 @@ class SMTP
|
|||||||
$selW = null;
|
$selW = null;
|
||||||
while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) {
|
while (is_resource($this->smtp_conn) && !feof($this->smtp_conn)) {
|
||||||
//Must pass vars in here as params are by reference
|
//Must pass vars in here as params are by reference
|
||||||
if (!stream_select($selR, $selW, $selW, $this->Timelimit)) {
|
//solution for signals inspired by https://github.com/symfony/symfony/pull/6540
|
||||||
|
set_error_handler([$this, 'errorHandler']);
|
||||||
|
$n = stream_select($selR, $selW, $selW, $this->Timelimit);
|
||||||
|
restore_error_handler();
|
||||||
|
|
||||||
|
if ($n === false) {
|
||||||
|
$message = $this->getError()['detail'];
|
||||||
|
|
||||||
|
$this->edebug(
|
||||||
|
'SMTP -> get_lines(): select failed (' . $message . ')',
|
||||||
|
self::DEBUG_LOWLEVEL
|
||||||
|
);
|
||||||
|
|
||||||
|
//stream_select returns false when the `select` system call is interrupted
|
||||||
|
//by an incoming signal, try the select again
|
||||||
|
if (stripos($message, 'interrupted system call') !== false) {
|
||||||
|
$this->edebug(
|
||||||
|
'SMTP -> get_lines(): retrying stream_select',
|
||||||
|
self::DEBUG_LOWLEVEL
|
||||||
|
);
|
||||||
|
$this->setError('');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$n) {
|
||||||
$this->edebug(
|
$this->edebug(
|
||||||
'SMTP -> get_lines(): select timed-out in (' . $this->Timelimit . ' sec)',
|
'SMTP -> get_lines(): select timed-out in (' . $this->Timelimit . ' sec)',
|
||||||
self::DEBUG_LOWLEVEL
|
self::DEBUG_LOWLEVEL
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Deliberate noise suppression - errors are handled afterwards
|
//Deliberate noise suppression - errors are handled afterwards
|
||||||
$str = @fgets($this->smtp_conn, self::MAX_REPLY_LENGTH);
|
$str = @fgets($this->smtp_conn, self::MAX_REPLY_LENGTH);
|
||||||
$this->edebug('SMTP INBOUND: "' . trim($str) . '"', self::DEBUG_LOWLEVEL);
|
$this->edebug('SMTP INBOUND: "' . trim($str) . '"', self::DEBUG_LOWLEVEL);
|
||||||
|
|||||||
38
vendor/phpoffice/phpword/.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
38
vendor/phpoffice/phpword/.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help improve PHPWord
|
||||||
|
labels: Bug Report
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Describe the Bug
|
||||||
|
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
### Steps to Reproduce
|
||||||
|
|
||||||
|
Please provide a code sample that reproduces the issue.
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
require __DIR__ . '/vendor/autoload.php';
|
||||||
|
|
||||||
|
$phpWord = new \PhpOffice\PhpWord\PhpWord();
|
||||||
|
$section = $phpWord->addSection();
|
||||||
|
$section->...
|
||||||
|
```
|
||||||
|
|
||||||
|
### Expected Behavior
|
||||||
|
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
### Current Behavior
|
||||||
|
|
||||||
|
What is the current behavior?
|
||||||
|
|
||||||
|
### Context
|
||||||
|
|
||||||
|
Please fill in your environment information:
|
||||||
|
|
||||||
|
- PHP Version:
|
||||||
|
- PHPWord Version:
|
||||||
22
vendor/phpoffice/phpword/.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
22
vendor/phpoffice/phpword/.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
labels: Change Request
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Is your feature request related to a problem? Please describe.
|
||||||
|
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
### Describe the solution you'd like
|
||||||
|
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
### Describe alternatives you've considered
|
||||||
|
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
### Additional context
|
||||||
|
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
14
vendor/phpoffice/phpword/.github/ISSUE_TEMPLATE/how-to-use.md
vendored
Normal file
14
vendor/phpoffice/phpword/.github/ISSUE_TEMPLATE/how-to-use.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
name: How to Use PHPWord
|
||||||
|
about: Find out how to use PHPWord
|
||||||
|
labels: WontFix
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
***Please do not use the issue tracker to ask how to use PHPWord.***
|
||||||
|
|
||||||
|
Documentation is available on [Read the Docs](https://phpword.readthedocs.io/en/latest/).
|
||||||
|
|
||||||
|
Sample code is in the [`/samples/` directory](https://github.com/PHPOffice/PHPWord/tree/develop/samples).
|
||||||
|
|
||||||
|
Usage questions belong on [Stack Overflow](https://stackoverflow.com/questions/tagged/phpword).
|
||||||
11
vendor/phpoffice/phpword/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
11
vendor/phpoffice/phpword/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
### Description
|
||||||
|
|
||||||
|
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.
|
||||||
|
|
||||||
|
Fixes # (issue)
|
||||||
|
|
||||||
|
### Checklist:
|
||||||
|
|
||||||
|
- [ ] I have run `composer run-script check --timeout=0` and no errors were reported
|
||||||
|
- [ ] The new code is covered by unit tests (check build/coverage for coverage report)
|
||||||
|
- [ ] I have updated the documentation to describe the changes
|
||||||
8
vendor/phpoffice/phpword/.github/dependabot.yml
vendored
Normal file
8
vendor/phpoffice/phpword/.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: composer
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: monthly
|
||||||
|
time: "11:00"
|
||||||
|
open-pull-requests-limit: 10
|
||||||
15
vendor/phpoffice/phpword/.github/support.yml
vendored
Normal file
15
vendor/phpoffice/phpword/.github/support.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# Label used to mark issues as support requests
|
||||||
|
supportLabel: Question
|
||||||
|
# Comment to post on issues marked as support requests. Add a link
|
||||||
|
# to a support page, or set to `false` to disable
|
||||||
|
supportComment: >
|
||||||
|
This looks like a support question. Please ask your support questions on
|
||||||
|
[StackOverflow](http://stackoverflow.com/questions/tagged/phpword),
|
||||||
|
or [Gitter](https://gitter.im/PHPOffice/PHPWord).
|
||||||
|
|
||||||
|
Thank you for your contributions.
|
||||||
|
|
||||||
|
# Whether to close issues marked as support requests
|
||||||
|
close: true
|
||||||
|
# Whether to lock issues marked as support requests
|
||||||
|
lock: false
|
||||||
122
vendor/phpoffice/phpword/.github/workflows/ci.yml
vendored
Normal file
122
vendor/phpoffice/phpword/.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
name: CI
|
||||||
|
on:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
php-version:
|
||||||
|
- "7.1"
|
||||||
|
- "7.2"
|
||||||
|
- "7.3"
|
||||||
|
- "7.4"
|
||||||
|
- "8.0"
|
||||||
|
- "8.1"
|
||||||
|
|
||||||
|
name: PHP ${{ matrix.php-version }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup PHP, with composer and extensions
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php-version }}
|
||||||
|
extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
|
||||||
|
coverage: none
|
||||||
|
|
||||||
|
- name: Get composer cache directory
|
||||||
|
id: composer-cache
|
||||||
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||||
|
|
||||||
|
- name: Cache composer dependencies
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||||
|
restore-keys: ${{ runner.os }}-composer-
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||||
|
|
||||||
|
- name: Setup problem matchers for PHP
|
||||||
|
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
|
||||||
|
|
||||||
|
- name: Setup problem matchers for PHPUnit
|
||||||
|
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
|
||||||
|
|
||||||
|
- name: Configure matchers
|
||||||
|
uses: mheap/phpunit-matcher-action@v1
|
||||||
|
|
||||||
|
- name: Test with PHPUnit
|
||||||
|
run: ./vendor/bin/phpunit --no-coverage
|
||||||
|
|
||||||
|
php-cs-fixer:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup PHP, with composer and extensions
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: 7.4
|
||||||
|
extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
|
||||||
|
coverage: none
|
||||||
|
tools: cs2pr
|
||||||
|
|
||||||
|
- name: Get composer cache directory
|
||||||
|
id: composer-cache
|
||||||
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||||
|
|
||||||
|
- name: Cache composer dependencies
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||||
|
restore-keys: ${{ runner.os }}-composer-
|
||||||
|
|
||||||
|
- name: Composer Install
|
||||||
|
run: composer global require friendsofphp/php-cs-fixer
|
||||||
|
|
||||||
|
- name: Add environment path
|
||||||
|
run: export PATH="$PATH:$HOME/.composer/vendor/bin"
|
||||||
|
|
||||||
|
- name: Code style with PHP-CS-Fixer
|
||||||
|
run: php-cs-fixer fix --dry-run --diff
|
||||||
|
|
||||||
|
coverage:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup PHP, with composer and extensions
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: 7.4
|
||||||
|
extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib
|
||||||
|
coverage: xdebug
|
||||||
|
|
||||||
|
- name: Get composer cache directory
|
||||||
|
id: composer-cache
|
||||||
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||||
|
|
||||||
|
- name: Cache composer dependencies
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ${{ steps.composer-cache.outputs.dir }}
|
||||||
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||||
|
restore-keys: ${{ runner.os }}-composer-
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||||
|
|
||||||
|
- name: Coverage
|
||||||
|
run: |
|
||||||
|
./vendor/bin/phpunit --coverage-clover coverage-clover.xml
|
||||||
|
curl -LO https://scrutinizer-ci.com/ocular.phar
|
||||||
|
php ocular.phar code-coverage:upload --format=php-clover coverage-clover.xml
|
||||||
29
vendor/phpoffice/phpword/.github/workflows/github-pages.yml
vendored
Normal file
29
vendor/phpoffice/phpword/.github/workflows/github-pages.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
name: GithHub Pages
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- '*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
github-pages:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup PHP, with composer and extensions
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: 7.4
|
||||||
|
coverage: none # remove xdebug
|
||||||
|
|
||||||
|
- name: Build API documentation
|
||||||
|
run: |
|
||||||
|
curl -LO https://github.com/phpDocumentor/phpDocumentor/releases/download/v3.0.0/phpDocumentor.phar
|
||||||
|
php phpDocumentor.phar --directory src/ --target docs/api
|
||||||
|
|
||||||
|
- name: Deploy to GithHub Pages
|
||||||
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./docs/api
|
||||||
32
vendor/phpoffice/phpword/.github/workflows/stale.yml
vendored
Normal file
32
vendor/phpoffice/phpword/.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: 'Close stale issues and PRs'
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '30 1 * * *'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
stale:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/stale@v5
|
||||||
|
with:
|
||||||
|
days-before-stale: 90
|
||||||
|
days-before-close: 60
|
||||||
|
exempt-issue-labels: 'pinned,security'
|
||||||
|
exempt-pr-labels: 'pinned,security'
|
||||||
|
stale-issue-message: 'This issue has been automatically marked as stale because it has not had
|
||||||
|
recent activity. It will be closed if no further activity occurs.
|
||||||
|
|
||||||
|
If this is still an issue for you, please try to help by debugging it
|
||||||
|
further and sharing your results.
|
||||||
|
|
||||||
|
Thank you for your contributions.'
|
||||||
|
stale-pr-message: 'This PR has been automatically marked as stale because it has not had
|
||||||
|
recent activity. It will be closed if no further activity occurs.
|
||||||
|
|
||||||
|
If this is still an issue for you, please try to complete the PR by adding tests and making sure that the CI is green.
|
||||||
|
|
||||||
|
Thank you for your contributions.'
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user