Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux服务器上对邮件队列的PHP访问_Php_Linux_Email_Queue - Fatal编程技术网

Linux服务器上对邮件队列的PHP访问

Linux服务器上对邮件队列的PHP访问,php,linux,email,queue,Php,Linux,Email,Queue,我想知道是否有人能帮我解答一个问题。我的服务器最近有一个电子邮件帐户被黑客攻击,随后大量垃圾邮件出现在邮件队列中。我已经更改了相关电子邮件帐户的密码,并使用qmHandle从邮件队列中删除垃圾邮件。我想防止这种情况再次发生,我想知道PHP是否有可能访问邮件队列并运行cron作业,该作业可以每小时运行一次,并运行一个脚本,在邮件队列超过一定数量的邮件时向我发出警报,这样我就可以得到警报并做出相应的反应?我的服务器是运行Redhat的Linux,如果这有什么区别的话 许多人提前表示感谢。由于我不知道

我想知道是否有人能帮我解答一个问题。我的服务器最近有一个电子邮件帐户被黑客攻击,随后大量垃圾邮件出现在邮件队列中。我已经更改了相关电子邮件帐户的密码,并使用qmHandle从邮件队列中删除垃圾邮件。我想防止这种情况再次发生,我想知道PHP是否有可能访问邮件队列并运行cron作业,该作业可以每小时运行一次,并运行一个脚本,在邮件队列超过一定数量的邮件时向我发出警报,这样我就可以得到警报并做出相应的反应?我的服务器是运行Redhat的Linux,如果这有什么区别的话


许多人提前表示感谢。

由于我不知道您使用的是哪种Maildaemon,我可以提出一些想法:

  • 要显示que,请使用“mailq”(在Debian/Postfix系统上)
  • 要从php访问它,请使用“sudo”(从非特权用户以root用户身份执行命令)
  • 可能通过在“mailq”中添加“grep”来对其进行过滤/分组

  • 因为您使用的是qmail,并且服务器上有qmHandle,所以这相当简单
    qmHandle-s
    将提供一些统计信息,包括远程队列中的消息数。远程队列包含排队等待传递的传出消息。您可以使用grep和cut拼凑出一行代码,这样就可以计算远程队列中的消息数,例如:
    qmHandle-s | grep remote | cut-d:-f2

    您不需要PHP来完成这项工作。一个由cron运行的简单bash脚本就可以做到这一点。诸如此类:

    nbline=`mailq|wc-l`
    如果[$nbline-gt$seuilMails]
    然后
    echo-e“\n向导队列后缀dépassé($nbline alignes)”>>$msgFile
    sendmail=true
    else echo-e“\nQueue后缀normale”>>$msgFile
    fi
    如果[“$sendMail”==true];然后
    mailto_管理员“$sujet”“$msgFile”
    
    fi
    mailqueue将由root用户拥有/操作。除非您希望以root用户身份运行PHP,否则它将没有队列的权限。请安装类似nagios/cactus monitoring的软件,该软件在计算机上作为服务运行,可以在操作系统级别监视您的队列,然后他们会有一个web前端来监视它。这是我的nagios图表之一,感谢您的快速回复。如果我以root用户身份运行脚本,是否只是列出了邮件目录中的文件数?@Dave-谢谢-看起来很神奇-但是安装起来很复杂。我的服务器由Rackspace管理,因为我现在对服务器的运行一无所知,我很确定他们不会支持它:(如果它的机架空间有两个选项,您可以一次性为您设置/配置,或者您可以按照一些分步教程进行操作,如果您想查看如何伪造munin和nagios邮件队列监控Mailq只是postfix/sendmail,我相信不是所有MTA的sHello,服务器使用QMail,所以我想如果我以root用户身份运行php脚本,我将能够像列出web目录一样列出邮件目录的内容?mailq并不是真的给了你一个单一的文本流,你必须对它进行正则化,以提取有用的信息,因为它充满了垃圾