Ricardo.Li

CommentToMail V4.1 使用教程
CommentToMail作为一款老牌Typecho邮件通知评论的插件,也有很多分支,但是由于版本太老所以有各种各...
扫描右侧二维码阅读全文
08
2017/09

CommentToMail V4.1 使用教程

CommentToMail作为一款老牌Typecho邮件通知评论的插件,也有很多分支,但是由于版本太老所以有各种各样的问题,博主在9月4日-9月6日不断尝试,不断失败后决定自己动手修改这个插件的。

更新日志

V4.0.0(2017.09.08)

1.基于原V3.1.0版本重新编写
2.更新了PHP Mailer版本
3.优化了使用SMTP发信的证书认证(QQ邮箱证书加密级别太低)
4.修复使用QQ邮箱(非企业邮箱)的时候会发现邮件发不出去的BUG
5.将异步触发更换为网址监控运行

V4.1.1(2017.12.21)

1.更新插件使用说明
2.优化通知模板UI
3.增添一个解决DT:SPM CODE 544错误的方案
4.增添对php7.2的支持
5.更多细节优化

V4.1.2(2018.04.30)

修复数据库导入时偶发性的“Database Query Error” (感谢 权那他 的指正)
祝自己高考顺利!

版权申明

1.插件原版本及作者相关信息保留在插件文件的作者信息下方
2.PHP Mailer文件来自于GitHub
3.转载或重制请保留作者信息

使用方法

1.下载插件,将插件上传到 /usr/plugins/ 目录下,修改主题模板comments.php文件,在评论form表单的适当位置添加name为receiveMail的选择框(checkbox),请注意:下方两种代码,你只能选择一个添加到主题模板文件,一般建议你选择默认接收邮件。

  • 正常显示选择框:

<input type="checkbox" name="receiveMail" id="receiveMail" value="yes" checked /> <label for="receiveMail" style="padding-left:8px;">当有人回复时接收邮件提醒</label>

  • 隐藏选择框(默认接受邮件):

<input type="hidden" name="receiveMail" id="receiveMail" value="yes" />

下面我以handsome主题作为例子:
IMG_0301.PNG
选中第二个文件夹,找到comments.php
IMG_0302.PNG
定位到下图所示位置:
IMG_0285.JPG
在上图主题文件评论框的input下方插入代码即可(任意一个input都行,不过为了方便,可以添加在邮件那行下方),不过每次主题更新后可能需要重新设置。
(请注意:Handsome主题自4.1.x版本开始,增添对本插件的支持,无需再次修改文件!)
IMG_0303.PNG
设置完如上图所示,保存好文件!到这一步,你已经成功了一半。
2.后台启用相关插件
3.设置smtp服务器地址、邮箱地址、密码等信息
4.设置cron监控(如果你觉得麻烦或者不会可以添加网址监控!具体步骤参照步骤5)
监控的网址就是插件设置后台的任务执行地址加上你自己设置的Key(注意,任务执行链接不包含【 】,如:http://baidu.com/index.php/action/comment-to-mail?do=deliverMail&key=123456
IMG_0281.PNG
5.网址监控:在阿里/360网址监控加上你的执行网址就可以发信!在这里我用360网址监控作为演示。(此步骤可代替步骤4)
IMG_0282.PNG
设置好了会显示如下信息:
IMG_0283.PNG
正确设置后,就可以正常发信了。360默认每10分钟触发一次,也就是每10分钟将之前的邮件发送一次的意思。
IMG_0287.PNG

如果你正常设置本插件,但在发信时出现DT:SPM CODE 544错误,你可以到CommentToMail目录下找到Action.php,定位到316行,去除代码的注释。
(此操作仅针对出现错误的用户,如果你发信正常,请不要去除注释!)
IMG_0288.PNG

常见问题

1.Key是邮件任务执行密码,防止他人恶意执行任务消耗资源
2.下方任务执行地址就是说当你访问这个网址时,邮件任务才会执行,为了达到自动发送的效果,我们设置cron或者网址监控,每隔一段时间让远程服务器代替你访问任务执行网址
3.执行验证是用来调试和应对特殊环境,一般不要勾选!
4.可以清理邮件发送信息
5.QQ邮箱smtp密码需要在邮箱网页端获取,具体配置信息可以参考度娘
6.测试普通QQ邮箱可以正常发送,但可能由于腾讯反垃圾邮件逻辑,用户不能正常接受邮件,建议大家使用QQ域名邮箱,如果你没有域名邮箱,可以通过邮件联系我,或者直接在下方留言
7.本插件仅支持typecho1.0及之后版本
8.如果出现 邮件发送失败:SMTP connect() failed. (PHP>=5.6)可以参考这篇博文 https://9sb.org/45

写在最后

1.使用方法非常重要!!!建议您仔细阅读上方说明。
2.希望您使用本插件后,可以在下方评论,让更多的人看见/使用本插件

下载链接
更多可移步 页面-实验室

最后修改:2018 年 04 月 30 日 04 : 56 PM
如果觉得我的文章对你有用,请随意赞赏

97 条评论

  1. 权那他

    一个小bug提醒你,建议把 Plugin.php 里第254行的 改成 'sent' => '0' 不然邮箱人会出现数据库错误

    1. Uniartisan
      @权那他

      谢谢! 最近准备高考所以没有时间修复。
      你这节省了我不少时间呢

      1. 权那他
        @Uniartisan

        ୧(๑•̀⌄•́๑)૭ 加油,我马上也高三了。OωO

        1. Uniartisan
          @权那他

          已经在更新日志注明,V4.1.2

  2. SanCi

    博主 审核 通过留言,这个插件并不会发送邮件,一定要回复留言才会发送邮件。
    个人认为 审核 通过也应该发送邮件, 这样会更完美。

    1. SanCi
      @SanCi

      通过 审核 就能在评论栏显示留言,并不一定需要回复,这种情况也应该发送邮件告知留言者。

      1. Uniartisan
        @SanCi

        实际上这个插件是通过评论时写入数据库,再通过队列执行的,你这个可能不太好实现,要获取typecho的评论审核状态,可能要改typecho本身的代码。

  3. Yiveco

    25端口被封,没有其他解决办法吗?

    1. Uniartisan
      @Yiveco

      可以试试465

  4. 子栖

    小白只能弱弱的说一句,大佬用的和我一样是宝塔OωO

    1. roger
      @子栖

      我是

  5. 梦浪的小虾米

    路过,过来膜拜大佬

  6. 小凯

    两个插件冲突这么解决OωO

  7. 小凯

    表示邮箱内不发送邮件

  8. h

    回复报错‘Database Query Error’是什么问题

    1. h
      @h

      邮箱测试是通过了的

      1. Uniartisan
        @h

        已经修复

发表评论