被折腾到吐血的邮件通知

by 叶开楗 · 2021-04-28 · 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

后续

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

标签:代码

最后编辑于:2021-04-28 17:10:53