管理sendmail郵件隊列

1、隊列文件通常存放在/var/spool/mqueue下面,每個待發送的郵件由幾個文件構成,例如,我們可以看到下面的目錄文件列表: [root@mail mqueue]# ls

dfRAA27175 xfAAA00733 xfBAA00819 xfEAA32763 xfXAA00706
qfRAA27175 xfAAA00784 xfDAA01360 xfFAA01616
文件名字總是由一個兩字符的前綴加上一個隨機數字。前綴有四鍾:
df:郵件內容
qf:郵件頭和一些控制信息
xf:一些臨時文件
tf:qf文件的臨時存儲文件

2、可以通過看隊列中的qf文件來確定當前隊列信息,不過通常都可以用mailq程序來完成對隊列狀態的查詢:
root@mail mqueue]# mailq
Mail Queue (1 request)
--Q-ID-- --Size-- -----Q-Time----- ------------Sender/Recipient----------- -
RAA27175 22429 Fri Feb 25 17:34
: deferred)
×××@×××.net
這表示隊列中目前只有一封信,由zhangfl發出,[url=mailto:收信人是×××@×××.net]收信人是×××@×××.net]。

3、查看隊列:
mailq
# 查看MTA隊列的滯留情況(等價於sendmail -bp)
mailq -Ac # 查看MSP隊列的滯留情況(等價於sendmail -bp -Ac)
強制送信:
/usr/sbin/sendmail -q -v
# 對MTA隊列強制送信
/usr/sbin/sendmail -q -v -Ac
# 對MSP隊列強制送信
注:如執行完以上命令後,隊列中仍然還有很多郵件,這時需要多次執行以上命令,直到郵件發送完爲止。
參數說明:
-q 立即處理隊列的內容.
-v 顯示進度詳細信息
-Ac 讀取MSP隊列(默認是讀取MTA隊列)

4、sendmail接受到的信件在用戶取走之前將暫時存儲在/var/spool/mail目錄下面,存儲的方法非常簡單,就是每個有待讀郵件的用戶一個文件:
[root@mail spool]# ls -l /var/spool/mail |more
total 19364
-rw-rw---- 1 anyi mail 7559035 Feb 28 22:04 anyi
-rw-rw---- 1 baixuan mail 514 Nov 7 01:32 baixuan
-rw-rw---- 1 cwc mail 515 Feb 28 08:35 cwc
如果一個用戶有多封電子郵件,那麼這些郵件就被簡單地連接在一起構成一個大文件(所以你會看到非常巨大的郵件文件)。

5、如果你面對的是一個很龐大的郵件服務系統,有時會在某個郵件隊列中擁塞太多的消息,你可能想把這個隊列暫停並且在網絡空閒的時候再發送,暫停一個郵件隊列的辦法非常簡單,就是將/var/spool/mqueue目錄移走:
killall sendmail
mv /var/spool/mqueue /var/spool/mqueue.stop
mkdir /var/spool/mqueue
sendmail Cbd
當網絡空閒的時候,可以用-oQ參數立即處理擁塞的隊列:
sendmail CoQ/var/spool/mqueue.stop Cq

6、設置郵件隊列間隔
守護程序啓動時 -q 標誌的值確定 sendmail 守護程序處理郵件隊列的時間間隔。
在 Red Hat 的預設條件中,在 /var/spool/mqueue 當中的信件會每隔 60 分鐘由 Sendmail 嘗試重新傳送一次到目的地去!這個嘗試的時間是可以改變的!可以利用 sendmail 的指令或者直接修改 /etc/sysconfig/sendmail 裏面的 『QUEUE=時間』來修訂!例如,如果你想要讓 Sendmail 每隔 30 分鐘就幫你嘗試傳送 /var/spool/mqueue 裏面的未寄出的信件時,那麼就將 /etc/sysconfig/sendmail 這個檔案裏面的『QUEUE=1h 』改成『QUEUE=30m 』即可! 
這些變化會在下一次系統重新啓動時生效。如果您想讓這些變化立刻生效,請停止並重新啓動 sendmail 守護程序,指定新的 -q 標誌值。更多相關信息,請參閱停止 sendmail 守護程序和啓動 sendmail 守護程序。

7、在sendmail裏如何控制郵箱大小
在 /etc/sendmail.cf 中設置 
找這個字段 ,把前面的註釋“#”去掉,再把“0”修改爲你想要控制的郵件大小,比如10M,這個文件中,是以字節爲單位的。
# maximum message size 
#O MaxMessageSize=1000000

8、要察看郵件系統的狀態,使用mailstats命令。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章