'Recommended Articles from {#email_subject#}', 'email_content' => 'Dear {#author_name#},

I hope this message finds you well!

We would like to extend our sincere thanks for your recent contribution to {#journal_title#} with your article titled "{#article_title#}".

In light of the themes explored in your paper, we would like to share with you a selection of recently published articles that cover similar or complementary topics. We believe these may be of interest to you:

{#article_info#} We hope these articles prove useful for your research or teaching. Should you have any thoughts or feedback, we would be delighted to hear from you.

Thank you for your continued engagement with {#journal_title#}

Best regards,
{#editorinchief#}
{#journal_title#}
Website:{#journal_usx#}
X: @{#journal_sx#}Journals' ]; protected static $sDoiUrl = 'https://doi.org/'; // 记录任务开始 static function get($aParam = []) { //文章ID $iArticleId = empty($aParam['article_id']) ? '' : $aParam['article_id']; if(empty($iArticleId)){ return json_encode(array('status' => 2,'msg' => 'Please select an article'.json_encode($aParam) )); } //关联文章ID $iRelatedArticleId = empty($aParam['related_article_id']) ? '' :$aParam['related_article_id'] ; if(empty($iRelatedArticleId)){ return json_encode(array('status' => 2,'msg' => 'Please select an associated article')); } //接口获取信息 $sApiUrl = self::$sApiUrl.'wechat/Article/getRelatedArticles'; $aResult = object_to_array(json_decode(myPost($sApiUrl, $aParam),true)); //获取接口状态 $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; if($iStatus != 1){ return json_encode($aResult); } //处理数据 $aData = empty($aResult['data']) ? [] : $aResult['data']; //文章基本信息 $aArticle = empty($aData['article']) ? [] : $aData['article']; if(empty($aArticle)){ return json_encode(array('status' => 3,'msg' => 'Article not found' )); } //关联文章基本信息 $aRelatedArticle = empty($aData['related_article']) ? [] : array_column($aData['related_article'], null,'article_id'); if(empty($aRelatedArticle)){ return json_encode(['status' => 4,'msg' => 'No information was found for the associated article']); } $aRelatedArticle += [$iArticleId => $aArticle]; //期刊数据 $aJournal = empty($aData['journal']) ? [] : array_column($aData['journal'], null,'journal_id'); if(empty($aJournal)){ return json_encode(['status' => 5,'msg' => 'The journal to which the article belongs does not exist']); } //文章作者 $aAuthor = empty($aData['author']) ? [] : $aData['author']; if(empty($aAuthor)){ return json_encode(['status' => 6,'msg' => 'No author information found for the article']); } //查询发送人信息 $aEmail = array_unique(array_column($aAuthor, 'email')); $aWhere = ['email' => ['in',$aEmail]]; $aUser = Db::name('user')->where($aWhere)->column('email,realname,localname'); //数据处理-获取文章作者 $aArticleAuthor = []; foreach ($aAuthor as $key => $value) { if(empty($value['email'])){ continue; } //用户信息 $aUserInfo = empty($aUser[$value['email']]) ? [] : $aUser[$value['email']]; $realname = empty($aUserInfo['realname']) ? '' : $aUserInfo['realname']; $localname = empty($aUserInfo['localname']) ? '' : $aUserInfo['localname']; $realname = empty($realname) ? $localname : $realname; $realname = empty($value['author_name']) ? $realname : $value['author_name']; $aArticleAuthor[$value['article_id']][$value['email']] = $realname; } if(empty($aArticleAuthor)){ return json_encode(['status' => 7,'msg' => 'No author information found for the article']); } //邮件模版 $aEmailInfo =self::$aEmailTemplate; //数据处理 foreach ($aArticleAuthor as $key => $value) { if(empty($value)){ continue; } //关联文章信息 $aRelatedArticleInfo = empty($aRelatedArticle[$key]) ? [] : $aRelatedArticle[$key]; if(empty($aRelatedArticleInfo)){ continue; } //期刊信息 $aJournalInfo = empty($aJournal[$aRelatedArticleInfo['journal_id']]) ? [] : $aJournal[$aRelatedArticleInfo['journal_id']]; if(empty($aJournalInfo)){ continue; } //用户信息 $realname = empty($val) ? $realname : $val; //期刊标题 $from_name = empty($aJournalInfo['title']) ? '' : $aJournalInfo['title']; //邮件标题 $title = str_replace('{#email_subject#}', $from_name, $aEmailInfo['email_subject']); //邮件内容 $aSearch = [ '{#article_title#}' => empty($aRelatedArticleInfo['title']) ? '' : strip_tags($aRelatedArticleInfo['title']),//文章标题 '{#editorinchief#}' => empty($aJournalInfo['editorinchief']) ? '' : $aJournalInfo['editorinchief'],//总编辑 '{#journal_title#}' => $from_name,//期刊名 '{#journal_usx#}' => empty($aJournalInfo['usx']) ? '' : self::$sJournalUsx.$aJournalInfo['usx'],//官网地址 '{#journal_sx#}' => empty($aJournalInfo['sx']) ? '' : $aJournalInfo['sx'],//期刊sx ]; //关联文章说明 $sArticleInfo = ''; $i = 1; foreach ($aRelatedArticle as $v) { if($v['article_id'] == $key){ continue; } $sDoi = empty($v['doi']) ? '' : self::$sDoiUrl.$v['doi']; //作者 $aAuthorInfo = empty($aArticleAuthor[$v['article_id']]) ? [] : array_values($aArticleAuthor[$v['article_id']]); if(count($aAuthorInfo) > 3){ $sAuthorInfo = implode(',', array_slice($aAuthorInfo,0,3))."等"; }else{ $sAuthorInfo = empty($aAuthorInfo) ? '' : implode(',', $aAuthorInfo); } $sArticleInfo .= $i.'. Article Title: '.$v['title'].'
Author(s): '.$sAuthorInfo.'
Link or DOI: '.$sDoi.'

'; $i++; } $aSearch['{#article_info#}'] = empty($sArticleInfo) ? '' : $sArticleInfo; //作者邮箱-发送信息 foreach ($value as $k => $val) { $email = '1172937051@qq.com';//$k; $aSearch['{#author_name#}'] = empty($val) ? $email : $val; $content = str_replace(array_keys($aSearch), array_values($aSearch), $aEmailInfo['email_content']); //判断标题和内容是否为空 if(empty($title) || empty($content)){ continue; } $pre = Env::get('emailtemplete.pre'); $net = Env::get('emailtemplete.net'); $net1 = str_replace("{{email}}",trim($email),$net); $content=$pre.$content.$net1; //发送邮件 $memail = empty($aJournalInfo['email']) ? '' : $aJournalInfo['email']; $mpassword = empty($aJournalInfo['epassword']) ? '' : $aJournalInfo['epassword']; $aResult = sendEmail($email,$title,$from_name,$content,$memail,$mpassword); $iStatus = empty($aResult['status']) ? 0 : $aResult['status']; $iIsSuccess = 2; $sMsg = empty($aResult['data']) ? '失败' : $aResult['data']; if($iStatus == 1){ $iIsSuccess = 1; $sMsg = '成功'; } $aEmailLog[] = ['article_id' => $iArticleId,'related_article_id' => $key,'email' => $email,'content' => $content,'create_time' => time(),'is_success' => $iIsSuccess,'journal_id' => $aJournalInfo['journal_id'],'journal_issn' => $aJournalInfo['issn'],'msg' => $sMsg]; } } //插入日志记录 if(!empty($aEmailLog)){ $result = Db::name('email_related_article')->insertAll($aEmailLog); if($result === false){ return json_encode(['status' => 8,'msg' => 'Email sending log insertion failed:'.json_encode($aEmailLog)]); } } return json_encode(['status' => 1,'msg' => 'Email sent successfully']); } } ?>