我想知道是否有人可以幫助我查詢。我的服務器最近有一個電子郵件帳戶被黑客入侵,隨後大量的垃圾郵件出現在郵件隊列中。我已更改相關電子郵件帳戶的密碼,並使用qmHandle從郵件隊列中刪除垃圾郵件。我想阻止這種情況再次發生,我想知道PHP是否可以訪問郵件隊列並運行每小時運行一次的cron作業,並運行腳本來提醒我郵件隊列是否超過設定的數量的郵件,所以我可以提醒並作出相應的反應?我的服務器是運行Redhat的Linux,如果這有什麼區別?對Linux服務器上的郵件隊列的PHP訪問
很多預先感謝。
我想知道是否有人可以幫助我查詢。我的服務器最近有一個電子郵件帳戶被黑客入侵,隨後大量的垃圾郵件出現在郵件隊列中。我已更改相關電子郵件帳戶的密碼,並使用qmHandle從郵件隊列中刪除垃圾郵件。我想阻止這種情況再次發生,我想知道PHP是否可以訪問郵件隊列並運行每小時運行一次的cron作業,並運行腳本來提醒我郵件隊列是否超過設定的數量的郵件,所以我可以提醒並作出相應的反應?我的服務器是運行Redhat的Linux,如果這有什麼區別?對Linux服務器上的郵件隊列的PHP訪問
很多預先感謝。
,因爲我不知道你使用的Maildaemon,我可以拋出一些事情要考慮:
mailq是postfix/sendmail只我相信不是所有的MTA的 – Dave
你是對的,我編輯我的帖子來清除它。 – JustAPirate
你好,服務器使用QMail,所以我想如果我以root身份運行一個PHP腳本,我將能夠列出郵件目錄的內容,就像我將一個Web目錄? – Nige1
由於正在使用的qmail訪問它,使用「命令」(如根從非priviledged用戶執行的命令)
qmHandle -s
會給你一些統計信息,包括遠程隊列中的消息數量。遠程隊列包含排隊傳遞的傳出郵件。您可以使用grep和cut來拼湊單行程序,這會給您遠程隊列中消息的數量,如下所示:qmHandle -s | grep remote | cut -d: -f2
您不需要PHP來做到這一點。一個由cron運行的簡單bash腳本就可以做到這一點。 Somethig這樣的:
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
mailqueue將擁有/ root用戶運行。除非你想以root身份運行PHP,否則它將無權訪問隊列。 –
安裝像在機器上作爲服務一樣運行的nagios/cactus監視器,並且可以在操作系統級監視隊列,然後他們有一個web前端來監視它。這是我的一個nagios圖表http://i39.tinypic.com/n2oq5g.png – Dave
感謝您的迅速回復。如果我以root的身份運行腳本,它只是一個列出郵件目錄中文件數目的情況? – Nige1