Typecho邮件通知使用第三方邮箱


实用代码1248 阅10 评

问题出现

本博客采用的是typecho-Comment2Mail插件进行邮件通知,因为插件只能设置一个收发件人,导致使用新邮箱进行邮件通知的我只能登陆邮箱或者后台才能看到来访评论者的消息。

问题解决

但是因为一直没有Typecho插件的经历,所以很多时候经常很长时间才会回复别人。前段时间,刚好有空,就看了看。发现作者写的代码挺清晰的,所以改起来也很舒服,这里直接放代码。

项目根目录Plugin.php为主要逻辑,直接修改这里的代码即可。

首先在config方法中添加收件人邮箱 -> 在104行之下添加相应代码:

// 收件邮箱
$from = new Typecho_Widget_Helper_Form_Element_Text('receive', NULL, NULL, _t('收件邮箱'), _t('用于接收待审核评论邮件的邮箱'));
$form->addInput($from->addRule('required', _t('收件邮箱必填!')));

然后在finishComment方法中修改发送需要审核的评论的邮件的邮箱 -> 在247行下添加代码:

$recipients[] = ['name' => $fromName, 'mail' => $comment2Mail->recevice];

添加完相应的代码就可以在后台指定待审核评论收件的邮箱了,相应的代码放在了这里

原本想着将消息转发到Gotify,但是两个评论不能一起使用。后来也没时间看是什么原因导致的,干脆该原来的代码比较简单。
最后更新 2022-05-16
评论 ( 10 )
OωO
隐私评论
  1. 加个异步,这样提交速度能快一些!

    2年前北京市回复
    1. @Teacher Du

      我用的是 CommentNotifier 这个插件,它支持异步发邮件,我看了代码,原理是提交评论时服务端另外发起一个 http 请求自己调用自己,在这个请求里面做发邮件的动作。但是不知道中间哪里有问题导致邮件走异步发不出去,打算有空排查一下。

      1个月前广东省回复
      1. @电脑星人

        感觉是只有我这个作者收不到邮件。

        1个月前福建省厦门市回复
      2. @电脑星人

        如果还维护的话,可以看一下仓库的issue,找找看别人有没有遇到过。我是打算换静态博客了,目前玩的东西比较多,打算放弃一些服务器和服务,开源节流。目前我用的这个插件另外一个博客是可以正常收到邮件的,但是这个确实已经收不到了。也不知道啥问题,懒得去找了。

        1个月前福建省厦门市回复
    2. @Teacher Du

      当时学php还没学到异步 过段时间我去抄一个(如果我还记得的话)

      2年前福建省厦门市回复
  2. 我也是用的这个插件,就是没有模版,自己也不会做,换别的插件都有问题。

    2年前河北省邯郸市回复
    1. @云帆沧海

      我也是找了很多,最后用了这个,虽然很久不维护了,但好在一直很稳

      2年前福建省厦门市回复
      1. @fghwett

        集美灌口报道。

        2年前福建省福州市回复
        1. @枫叶

          好地方,那边貌似正要发展。

          2年前福建省厦门市回复
  3. 这个功能倒是挺实用,可惜我现在用的主题和这个插件有冲突,等待作者把邮件通知功能集成到主题内

    2年前江西省赣州市回复