Typecho评论审核使用WebHook推送,其余使用邮件通知

目前本站的评论通知使用的是泽泽社长的CommentNotifier插件实现的,为了隐藏IP选择的是阿里云邮件推送。总所周知,阿里云邮件推送是收费的,秉持能省一点是一点的原则,我们可以将评论审核通知改为通过WebHook推送,这样几乎可以省下一半的邮件推送量。

以下是简单代码:

//这是配置代码
$webhook = new Form\Element\Text('webhook', NULL, NULL, _t('WebHook地址'), _t('请输入WebHook地址'));
$form->addInput($webhook);

//这是推送函数
    private static function sendWebHook($comment)
    {
        $plugin = Options::alloc()->plugin('CommentNotifier');
        $webhook = $plugin->webhook;
        $data = '有人发表了新评论';
        $message =   [  
            'msgtype' => 'markdown',  
            'markdown' => [  
                'content' => $data 
                ]  
                ];  
        $opts = [
            'http' => [
                'method'  => 'POST',
                'header'  => 'Content-type: application/json',
                'content' => json_encode($message)
            ],
        ];
        $context  = stream_context_create($opts);
        $result = file_get_contents($webhook, false, $context);
    }

将原审核通知代码注释掉,添加WebHook推送函数:

// 如果所有评论必须经过审核, 通知博主审核评论
//$recipients[] = ['name' => $fromName, 'mail' => $from];
//self::sendMail($comment, $recipients, 2);//2为待审核评论
self::sendWebHook($comment);

> 快来说说你的想法吧~