当前博客邮件发送功能修复CommentToMail折腾
当前博客邮件发送功能修复CommentToMail折腾

当前博客邮件发送功能修复CommentToMail折腾

轩灵
2019-11-19 / 0 评论 / 1,441 阅读 /
  • 文章转载请注明来源!
  • / 正在检测是否收录...
    温馨提示:
    本文最后更新于2020年03月10日,已超过1557天没有更新,若内容或图片失效,请留言反馈。

    当前博客邮件发送功能修复CommentToMail折腾

    缘起

    先是看到了一篇博文上写到了使用LoveKKComment实现了评论回复邮件提醒才一敲脑袋,哦豁,好像还真忘了这个功能,遂又是一个不休的夜晚。

    LoveKKComment

    LoveKKComment是一款Typecho邮件通知类插件,支持SMTP、Send Cloud、阿里云邮件推送三种邮件通知方式。然而我这里安装配置之后,一点儿反应都没有,转而投向CommentToMail,然而却又是个大坑。
    1. 安装,配置邮件服务器,测试邮件发送成功后,便到了模拟测试评论回复的环节。
    2. 然而不幸的是,尽管每次都没有返回邮件发送失败的消息,但只有博主能够收到评论的邮件,评论者并不能收到被回复的邮件提醒!!!
    3. 开启邮件发送日志,发现插件设置为不发送此类邮件或被评论访客拒收邮件!,一路追根溯源,逼着我阅读PHP源码才发现了在Plugin.php这块:

      //是否接收邮件
      if (isset($_POST['receiveMail']) && 'yes' == $_POST['receiveMail']) {
       $cfg['banMail'] = 0;
      } else {
       $cfg['banMail'] = 1;
      }
    4. 然而主题中不接收回复邮件通知按钮的元素名为banmail,所以应改为

      //是否接收邮件
      if (isset($_POST['banmail']) && 'stop' == $_POST['banmail']) {
       $cfg['banMail'] = 1;
      } else {
       $cfg['banMail'] = 0;
      }
    5. 其实到之后才发现在早期CommentToMail 2.0.1里便是如此= =,这才是原来的逻辑。

    环境BUG

    如果使用这个插件依然不能发送邮件,那么恭喜,我把坑都踩完了。。

    两种情况

    1. 测试邮件不能发送smtp端口465 用户名 授权码 ssl加密勾选,邮件是否进入垃圾桶(使用QQ邮箱好处就是不用进垃圾桶,例如100@qq.com这种)。
      上源码,插件使用fsockopen,pfsockopen,stream_socket_client三种方式发送邮件,检查对应函数是否被禁止。

      if (function_exists('fsockopen')) {
               $fp = @fsockopen ($scheme . $host, $port, $errno, $errstr, 30);
           } elseif (function_exists('pfsockopen')) {
               $fp = @pfsockopen ($scheme . $host, $port, $errno, $errstr, 30);
           } else {
               $fp = stream_socket_client($scheme . $host . ":$port", $errno, $errstr, 30);
           }
    2. 测试邮件能发送,但是回复不能触发,同上,检查函数是否被禁用,更大的可能性,这是环境配置问题,如果你是用的是宝塔面板,那么宝塔面板的PHP7.0或者7.3由于编译问题,函数是无效的。请换用PHP7.1或5.6即可。
    3. 以上都不能解决问题,那就使用CommentToMail4.1版本
      注:CommentToMail 用了异步触发,就是访客回复时,插件会自己去访问自己的一个页面,然后被访问的那个页面发信。
      异步触发中很多步骤都可能出问题,比如php无法访问到网站本身,或者执行到一半关闭连接时发送邮件的程序被关了。这些问题涉及到具体环境配置。
    本文共 628 个字数,平均阅读时长 ≈ 2分钟
    162

    海报

    点点赞赏,手留余香

    给TA打赏
    如果觉得文章对您有用,快来赞赏一个吧!
      取消
      扫码打赏
      支付金额随意哦!