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


PHP access to mail queue on Linux server

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

许多人提前表示感谢。

由于我不知道你使用的是哪个Maildaemon,我可以考虑一下:

  1. 要显示que,请使用"mailq"(在Debian/Postfix系统上)
  2. 要从php访问它,请使用"sudo"(以非特权用户的root身份执行命令)
  3. 也许可以通过在"mailq"中添加"grep"来对其进行筛选/分组

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

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

nbline=`mailq|wc -l`
if [ $nbline -gt $seuilMails ]
then
  echo -e "'nSeuil queue postfix dépassé ($nbline lignes)" >> $msgFile
  sendmail=true
  else echo -e "'nQueue postfix normale" >> $msgFile
fi
if [ "$sendMail" == true ]; then
        mailto_admins "$sujet" "$msgFile"
fi