typecho邮件提醒插件:Comment2Mail

项目介绍

star

Typecho博客评论通过时发送邮件提醒
插件源码: https://gitee.com/HoeXhe/typecho-Comment2Mail

更新说明

ps 更新需重新启用并配置插件

  • version 1.3.0 新增配置测试功能,验证配置是否能正常发信
  • version 1.2.1 如果是自己回复自己评论的, 不接收邮件
  • version 1.2.0 如果所有评论必须经过审核, 通知博主审核评论
  • version 1.1.1 邮件里显示评论人邮箱
  • version 1.1.0 修改了邮件样式,邮件样式是utf8,避免邮件乱码
  • version 1.0.1 博主回复别人时,不需要给博主发信

软件架构

typecho版本为0.8 (10.8.15)以上 (理论是支持所以版本)
php: >=5.5.0
如果启用SMTP加密模式PHP需要打开openssl扩展
邮件服务基于PHPMailer

安装教程

下载本插件,解压放到/usr/plugins/目录中
文件夹名改为Comment2Mail
登录管理后台,激活插件
配置插件 填写SMTP参数 QQ邮件SMTP配置说明 新浪配置 阿里云邮件配置 网易163邮件配置

2019-06-10_093359.png

常见问题

⭕️ 1. PHPMailerPHPMailerException: SMTP connect() failed. SMTP连接失败,请检查配置项

  • 检查邮箱配置: SMTP服务器地址 用户名 密码 端口是否正确
  • 检查运行环境: php 版本是否符合要求 或 openssl 扩展是否开启

⭕️ 2. 如配置项正确, 还是无法发信

服务器安全组策略把端口(465, 587)禁用了, 在服务器管理后台开启即可

联系作者

Email:i@hoehub.com

typecho

我来吐槽

*

*

已有 139 条评论

  1. 卷土

    博主,下个版本可以支持一下,贡献者也能收到邮件吗。对于多用户博客😜

    1. Hoe

      近期可能不更新哦😅

  2. 伏冬

    都设置好了,也可以正常接收邮件,就是接收的是乱码,不过还是能起到提醒作用的

    1. Hoe

      你把网站的编码改成utf-8应该就不会出现乱码了🙂

  3. n3em3o

    大佬好,我是一名小学生,想跟您加个友链,但是友链页面不能评论啊?

    1. Hoe

      同学你好,你是我目前见到的年纪最小的博主,看好你哦👍暂时不交换友链,抱歉

  4. 简白

    这个能不能设置Outlook邮箱,为啥我设置不上。总是测试失败😤

    1. Hoe

      插件支持Outlook邮箱的,再检查一下配置项和php环境是否符合要求

      1. 简白

        php环境符合要求,配置项正确,就是那个stmp加密模式怎么选不知道,账户后台显示的加密模式是STARTTLS,但是插件后台并没有这个选项,选择TLS之后测试失败,会有outlook团队发来邮件:
        要继续发送邮件,请登录并 验证您的Outlook.com帐户。这有助于我们阻止自动程序发送垃圾邮件。感谢您的帮助和耐心!

        然后验证并没有什么用,仍然测试失败:
        失败,请检查配置项~PHPMailerPHPMailerException: SMTP Error: data not accepted. in /data/home/byu4444670001/htdocs/usr/plugins/Comment2Mail/PHPMailer/src/PHPMailer.php:1789Stack trace:#0 /data/home/byu4444670001/htdocs/usr/plugins/Comment2Mail/PHPMailer/src/PHPMailer.php(1513): PHPMailerPHPMailerPHPMailer->smtpSend('Date: Wed, 22 J...', '5rWL6K+Vrn')#1 /data/home/byu4444670001/htdocs/usr/plugins/Comment2Mail/PHPMailer/src/PHPMailer.php(1352): PHPMailerPHPMailerPHPMailer->postSend()#2 /data/home/byu4444670001/htdocs/usr/plugins/Comment2Mail/Action.php(62): PHPMailerPHPMailerPHPMailer->send()#3 /data/home/byu4444670001/htdocs/var/Typecho/Router.php(138): Comment2Mail_Action->action()#4 /data/home/byu4444670001/htdocs/index.php(23): Typecho_Router::dispatch()#5 {main}

        🙏

        1. Hoe

          使用ssl协议,465端口试试

          1. 简白

            没用 算了 我换成QQ邮箱了,感谢回复🙏

  5. CMCboy

    我的Typecho博客别人可以注册并发表文章,如果我的注册用户A发表了一片文章,B回复了,那收到邮件提醒的是A还是我?

    1. Hoe

      收到邮件提醒的是你,不是A用户

  6. 胡

    PHPMailerPHPMailerException: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting in C:UsersAdministratorDesktoptypechobuildusrpluginsComment2MailPHPMailersrcPHPMailer.php:1758
    Stack trace:

    0 C:UsersAdministratorDesktoptypechobuildusrpluginsComment2MailPHPMailersrcPHPMailer.php(1513): PHPMailerPHPMailerPHPMailer->smtpSend('Date: Thu, 9 Ju...', '5rWL6K+Vrn')1 C:UsersAdministratorDesktoptypechobuildusrpluginsComment2MailPHPMailersrcPHPMailer.php(1352): PHPMailerPHPMailerPHPMailer->postSend()2 C:UsersAdministratorDesktoptypechobuildusrpluginsComment2MailAction.php(62): PHPMailerPHPMailerPHPMailer->send()3 C:UsersAdministratorDesktoptypechobuildvarTypechoRouter.php(138): Comment2Mail_Action->action()4 C:UsersAdministratorDesktoptypechobuildindex.php(23): Typecho_Router::dispatch()5 {main}

    1. Hoe

      认真检查一下账号密码端口🙂

  7. 二六

    启用插件的时候显示服务器错误😂

    1. 二六

      找到原因了,要把文件名前缀删掉就行😂

    2. Hoe

      详细的报错信息是什么, 可以加QQ群 276611109 讨论😀

  8. 格子

    我也遇到楼下的问题了……奇怪的是,我之前一直用的好好的,最近突然就不行了?可我什么也没动呀~

    1. Hoe

      哪个邮箱📮,是不是改密码了

      1. 格子

        qq的邮箱,并且没有改密码过……

        1. Hoe

          运行环境没有发生改变,配置项也没有发生改变,现在却连不上smtp服务🔋是不是密码太久没有改了,建议你重置密码 再试试

          1. 格子

            在我后台设置的邮箱的“已发送”那里查询了投递状态,全部都显示投递成功的,但前台我换了两个邮箱都没有收到任何回复,垃圾箱里也没有,这也太神奇了😭

          2. Hoe

            测试可以,说明可以正常发信。邮件应该已经发出去了,是不是在垃圾箱里了?

          3. 格子

            改完密码之后,测试设置那里显示成功,但实际上却没收到邮件是怎么回事……(对不起我太小白了问题真的很多)

  9. 勇敢的士兵

    失败,请检查配置项~
    PHPMailerPHPMailerException: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting in /www/wwwroot/www.guanjianzhen.cn/usr/plugins/Comment2Mail/PHPMailer/src/PHPMailer.php:1758
    Stack trace:

    0 /www/wwwroot/www.guanjianzhen.cn/usr/plugins/Comment2Mail/PHPMailer/src/PHPMailer.php(1513): PHPMailerPHPMailerPHPMailer->smtpSend('Date: Fri, 17 A...', '5rWL6K+Vrn')1 /www/wwwroot/www.guanjianzhen.cn/usr/plugins/Comment2Mail/PHPMailer/src/PHPMailer.php(1352): PHPMailerPHPMailerPHPMailer->postSend()2 /www/wwwroot/www.guanjianzhen.cn/usr/plugins/Comment2Mail/Action.php(62): PHPMailerPHPMailerPHPMailer->send()3 /www/wwwroot/www.guanjianzhen.cn/var/Typecho/Router.php(138): Comment2Mail_Action->action()4 /www/wwwroot/www.guanjianzhen.cn/index.php(23): Typecho_Router::dispatch()5 {main}

    弄了一天了,换了几个邮件通知插件,这到底是咋回事呀,大佬

    1. Hoe

      SMTP 联接错误,一般是配置问题。检查一下你的配置,你用的是什么邮箱

      1. 勇敢的士兵

        qq谷歌网易都用了...

        1. Hoe

          环境符合要求吗?可以加我微信或qq

  10. Tang

    我想问下,邮件怎么把文章链接换成文章标题呢?

    1. Hoe

      伪代码如下

          /**
           * 获取文章标题
           * @param $cid 文章ID
           * @return mixed
           * @throws Typecho_Db_Exception
           */
          private static function title($cid)
          {
              $db = Typecho_Db::get();
              $widget = new Widget_Abstract_Contents(new Typecho_Request(), new Typecho_Response());
              // 查询
              $select = $widget->select()->select('title')->where('cid' . ' = ?', $cid)->limit(1);
              $article = $db->fetchRow($select, [$widget, 'push']); // 获取文章
              return $article->title;
          }

      文章ID可以从评论类中获取 $comment->cid

    2. Hoe

      需要在发信代码中查询文章详情,然后把文章标题添加到模板里🙂