被折腾到吐血的邮件通知

2周前 (04-28) 715℃ 0

前言


从昨天开始就发现邮件通知有问题,有时候有人评论我能收到,有时候又不行,这就很尴尬!


寻找原因


凡哥 也给推测大概有问题的地方,于是我用了“BCompare” 进行比较 ,我以为 ` foreach ($data as $k => $v) { `  这里有问题,


凡哥说:” foreach和发邮件选错对象这事没关系,Forech 是循环替换邮件里面的些字符的,你看str_replace就大概知道了“ 那排除


@夏目贵志:你找到前端和后端的 Comment.php文件,分别在【application\frontend\logic】和【application\backend\logic】
下有这样一句:$tomail = Core::loadModel("Comment")->where(["id"=>$data['pid']])->value('mail');
里面的$data['pid']是获取被回复人的邮箱,被回复人就是刚提交的这条回复的父级评论,
后端和前端这两个代码写的是一样,肯定有一个不对,我本地安装的,邮件怎么也发不成功,没办法测试,你要是看到了,先试试。明天我重新配置下我本地的邮箱,看看是哪个的问题。


2811f63b55d872d64a23729683d5fd3d.png


折腾中


然后我又折腾了一下午,发送邮箱从 QQ邮箱/谷歌邮箱/live.cn邮箱 到现在比较稳定的阿里云邮箱,这时候文章评论都能收到了,但是又出现 `楼层回复` 问题了。


博友评论 -> 我评论  这时候正常,然后 博友回复->我  变成了他自己回复自己,没办法又只能找原因排查了。又是一顿折腾,我用小号和自己互相评论邮件通知正常!


847c3e0f74354535cc77ed7696b17ea4.png124bbd6498b0a706a624bc0a15349f7d.png

这里我是添加了一个代码,既然你回复管理员会变成回复自己,那我就给你截断增加个判断,我和小号测试正常。


       if(strpos($content,'@夏目贵志') !== false){ 
        $queue['mail_to']="6@9i3.cn";
        }else{
        }       


54e7c6384fa693d55dad9789ff8a3bff.png


然后又去”我将要远行  “和凡哥互相测试一下,变成了我是凡哥了,我又又又搞不懂了!!

7b834a3594641c37dc3eb5d15f5920be.png

无奈继续寻找,又分析下面的代码

  //邮件通知  
     private  function send($data){
        $site_url = Core::loadAction("Setting/getSetting",['column'=>"site_host"]);
        $site_name = Core::loadAction("Setting/getSetting",['column'=>"site_name"]);
        if ($data['pid'] != 0) {    
            $send_scene = '2';
            $reply = Core::loadModel("Comment")->where(["id"=>$data['pid']])->value('comment');
            $tomail = Core::loadModel("Comment")->where(["id"=>$data['pid']])->value('mail');
            $data['reply'] = $reply;
            }else{
            $tomail = config("config.toemail");
            $send_scene = '1';
        }

这个是选择通知模板的

send_scene = '2'; $send_scene = '1';


891cf85dfc96279d6e2e6696a592dd80.png


这个是选择回复楼层的

$data['pid']])

0ac7f31c49fe6370c8f74e0d36cd197d.png

于是我又想是不是 这个=0 导致判断ID出现问题 我就改成 > 大于号 大于 0 判断 ,自己测试又和小号测试了一下没问题。

if ($data['pid'] != 0) {

4e7a3864b2df9d2863b632624de1681a.png

然后去找凡哥互相测试一下,好家伙又变成他自己回复自己了!!


6c0c4658806a6febd1894e1f0acc26e1.png


后续

耽误凡哥那么过的时间!!自己都不好意思了,只能等我在看看哪里有问题吧!!!!


标签: none

非特殊说明,本博所有文章均为博主原创。

吐槽啦~



已有 40 条评论


  1. 小F 游客 1周前 (04-29) #40
    很久前用typecho的时候也是被评论回复邮件气到吐血,现在淡定了……
    夏目贵志 游客 1周前 (04-29) #40-1
    @小F: 我现在就是折腾吐了,好像我现在给你发送也是失败的
  2. 行吟游子 游客 1周前 (04-29) #39
    这对我来说是实例学习了。
    夏目贵志 游客 1周前 (04-29) #39-1
    @行吟游子:厉害了,我是瞎折腾
  3. 4Rou 游客 1周前 (04-29) #38
    测试测试收到请回答
    夏目贵志 游客 1周前 (04-29) #38-1
    @4Rou:收到啦,不过有的人给我评论,又收不到/(ㄒoㄒ)/~~
  4. 强仔 游客 1周前 (04-29) #37
    Qq卸了?专心折腾博客?
    夏目贵志 游客 1周前 (04-29) #37-1
    @强仔: 懒得用,看的闹心
  5. 中川沐矢 游客 1周前 (04-29) #36
    @中川沐矢:还是静态博客好,不用这么折腾,语雀云端写作,调webhook触发github action自动从语雀拉文章 然后自动deploy 生成静态html。用户仅需要点击下发布,即可一键发布。还不需要服务器。。。
    夏目贵志 游客 1周前 (04-29) #36-1
    @中川沐矢:这个我在GitHub看过,不过一个爱折腾的人,安逸不了,所在之处皆是江湖。 静态博客我也是用了快2年还是换回来了,主要是因为评论。
  6. 大峰 游客 2周前 (04-29) #35
    高手!鉴定完毕
    夏目贵志 游客 1周前 (04-29) #35-1
    @大峰: 小白一枚,凡哥才是高手。
  7. 老司机(FLYER) 游客 2周前 (04-29) #34
    你们把问题想复杂了
    夏目贵志 游客 2周前 (04-29) #34-1
    @老司机(FLYER): 小白表示,已经能努力了。
    夏目贵志 游客 2周前 (04-29) #34-0
    @夏目贵志:测试回复
    林羽凡 指导员 1周前 (04-29) #34--1
    @夏目贵志:我猜我这条回复,可能不显示。
  8. 林羽凡 指导员 2周前 (04-29) #33
    什么鬼,你这评论改得有毒啊,我第1次提交,提示 /commnet/add.html 是 500 ,
    夏目贵志 游客 2周前 (04-29) #33-2
    @林羽凡: 这么晚还在折腾辛苦你 因为发送邮件卡了所以延迟你重复评论了。明天我也要搞下!你早点休息吧,我都睡半小时了
    林羽凡 指导员 2周前 (04-29) #33-1
    @夏目贵志:睡吧睡吧,不辛苦,哈哈哈哈哈哈
  9. 林羽凡 指导员 2周前 (04-29) #32
    老兄,我给你弄好了, 你按我写的这个直接修改就成。https://www.linyufan.com/content/10/1765-1.html
  10. 姜辰 游客 2周前 (04-28) #31
    @姜辰:好家伙,你这是研究的可以啊,哈哈哈哈