From 49d44a03815f11692af4533010da6f1fcc5d7530 Mon Sep 17 00:00:00 2001 From: djc8 Date: Mon, 1 Feb 2021 13:37:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:CommentPush=E6=94=AF=E6=8C=81php8=20#115?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....sync-conflict-20210201-052039-BKQBY4R.php | 167 ------------------ 1 file changed, 167 deletions(-) delete mode 100644 CommentPush/lib/SmtpService.sync-conflict-20210201-052039-BKQBY4R.php diff --git a/CommentPush/lib/SmtpService.sync-conflict-20210201-052039-BKQBY4R.php b/CommentPush/lib/SmtpService.sync-conflict-20210201-052039-BKQBY4R.php deleted file mode 100644 index bd3b2297..00000000 --- a/CommentPush/lib/SmtpService.sync-conflict-20210201-052039-BKQBY4R.php +++ /dev/null @@ -1,167 +0,0 @@ - - */ - -require_once 'Service.php'; -require_once 'Extend/SMTP.php'; -require_once 'Extend/PHPMailer.php'; - -class SmtpService extends Service -{ - public function __handler($active, $comment, $plugin) - { - try { - $isPushBlogger = $plugin->isPushBlogger; - if ($comment['authorId'] == 1 && $isPushBlogger == 1 && !$comment['parent']) return false; - - $isPushCommentReply = $plugin->isPushCommentReply; - - $options = Helper::options(); - - $smtpHost = $plugin->smtpHost; - $smtpPort = $plugin->smtpPort; - $smtpUser = $plugin->smtpUser; - $smtpPass = $plugin->smtpPass; - $smtpAuth = $plugin->smtpAuth; - $smtpSecure = $plugin->smtpSecure; - - $authorTemplate = $plugin->authorTemplate; - $replyTemplate = $plugin->replyTemplate; - - $smtpFromAlias = empty($plugin->smtpFromAlias) ? $options->title : $plugin->smtpFromAlias; - $toAddress = $comment['mail']; - - - if (empty($smtpHost) || empty($smtpPort) || empty($smtpUser) || empty($smtpPass) || empty($smtpSecure)) throw new \Exception('缺少SMTP邮件推送配置'); - - - $parentComment = NULL; - - if ($comment['authorId'] != $comment['ownerId']) { - $author = self::getWidget('Users', 'uid', $comment['ownerId']); - $toAddress = $author->mail; - $parentComment = NULL; - } - - - if ($comment['parent'] && $comment['parent'] > 0) { - $parentComment = self::getWidget('Comments', 'coid', $comment['parent']); - if (isset($parentComment->coid) && $comment['mail'] != $parentComment->mail) { - $toAddress = $parentComment->mail; - } - } - - if (!is_null($parentComment) && $isPushCommentReply != 1) return false; - - list($subject, $body) = self::getSubjectAndBody($parentComment, $options, $comment, $active, $authorTemplate, $replyTemplate); - - - $mail = new PHPMailer(true); - $mail->CharSet = "UTF-8"; - $mail->SMTPDebug = 0; - $mail->isSMTP(); - $mail->Host = $smtpHost; - $mail->SMTPAuth = empty($smtpAuth) ? false : $smtpAuth; - $mail->Username = $smtpUser; - $mail->Password = $smtpPass; - $mail->SMTPSecure = $smtpSecure; - $mail->Port = $smtpPort; - $mail->setFrom($smtpUser, $smtpFromAlias); - $mail->addAddress($toAddress); - $mail->addReplyTo($smtpUser, $smtpFromAlias); - $mail->isHTML(true); - $mail->Subject = $subject; - $mail->Body = $body; - $mail->AltBody = '如果邮件客户端不支持HTML则显示此内容'; - $result = $mail->send(); - self::logger(__CLASS__, $toAddress, json_encode($mail), $result); - } catch (\Exception $exception) { - self::logger(__CLASS__, '', '', '', $exception->getMessage()); - } - } - - private function getSubjectAndBody($parentComment, $options, $comment, $active, $authorTemplate, $replyTemplate) - { - - if (!is_null($parentComment)) { - if (is_null($replyTemplate) || empty($replyTemplate)) { - $html = file_get_contents(dirname(__DIR__) . '/theme/reply.html'); - } else { - $html = $replyTemplate; - } - } else { - if (is_null($authorTemplate) || empty($authorTemplate)) { - $html = file_get_contents(dirname(__DIR__) . '/theme/author.html'); - } else { - $html = $authorTemplate; - } - } - - - /*$html = !is_null($parentComment) ? - file_get_contents(dirname(__DIR__) . '/theme/reply.html') : - file_get_contents(dirname(__DIR__) . '/theme/author.html');*/ - - - $subject = !is_null($parentComment) ? - _t('您在 [' . trim($options->title) . '] 的评论有了新的回复!') : - _t('您在 [' . trim($options->title) . '] 发表的文章有新评论!'); - - - $body = !is_null($parentComment) ? str_replace( - [ - '{blogUrl}', - '{blogName}', - '{author}', - '{permalink}', - '{title}', - '{text}', - '{replyAuthor}', - '{replyText}', - '{commentUrl}' - ], - [ - trim($options->siteUrl), - trim($options->title), - trim($parentComment->author), - trim($active->permalink . '#comment-' . $comment['coid']), - trim($active->title), - trim($parentComment->text), - trim($comment['author']), - trim($comment['text']), - trim($active->permalink . '#comment-' . $comment['coid']) - ], $html) : str_replace( - [ - '{blogUrl}', - '{blogName}', - '{author}', - '{permalink}', - '{title}', - '{text}', - '{ip}' - ], - [ - trim($options->siteUrl), - trim($options->title), - trim($comment['author']), - trim($active->permalink . '#comment-' . $comment['coid']), - trim($active->title), - trim($comment['text']), - trim($comment['ip']) - ], $html - ); - - return [$subject, $body]; - } - - private function getWidget($table, $key, $val) - { - $className = 'Widget_Abstract_' . $table; - $db = Typecho_Db::get(); - $widget = new $className(Typecho_Request::getInstance(), Typecho_Widget_Helper_Empty::getInstance()); - $db->fetchRow($widget->select()->where($key . ' = ?', $val)->limit(1), array($widget, 'push')); - - return $widget; - } -} \ No newline at end of file