您所在的位置:读书频道 > 操作系统 > Linux > 19.4.8 查看信件队列信息

19.4.8 查看信件队列信息

2007-12-06 19:11 鸟哥 机械工业出版社华章公司 字号:T | T
一键收藏,随时查看,分享好友!

《鸟哥的Linux私房菜——服务器架设篇》(第二版)第19章的主要介绍的是以Postfix为主的邮件主机架设。本文主要介绍的是查看信件队列信息。

AD:

19.4.8  查看信件队列信息

进行上述设置后,Postfix应该可以应对一般小型企业的Mail Server了。不过,有的时候因为网络的问题或者是对方主机的问题,可能导致某些信件无法送出而被暂存在队列中,那如何了解队列中有哪些邮件呢?在队列中等待送出的信件是如何送出的呢?

· 如果该封信在5分钟之内无法寄出,则通常系统会发出一封警告信给原发信者,告知该封邮件尚无法被寄送出去,不过,系统仍会持续的尝试寄出该封邮件。

· 如果在4小时后仍无法寄出,系统会再次发送警告信给原发信者。

· 如果持续进行5天都无法将信件送出,那么该封邮件会退回给原发信者。

当然,某些MTA已经取消了警告信的寄发,不过原则上,如果信件无法实时寄出去的话,MTA还是会努力尝试5天的;如果接下来的5天都无法送出时,才会将原信件退回给发信者。一般来说,如果MTA设置正确且网络没有问题,应该不可能会有信件被放在队列中而传不出去,所以如果发现有信件在队列时,需要仔细的看一下了。检查队列内容的方法可以使用Mailq,也可以使用postqueue-p来检查:

[root@linux ~]# postqueue -p
Mail queue is empty

若您的邮件如此显示时,恭喜您,没有问题邮件在队列中。不过,如果将Postfix关闭,并尝试发一封信给某个人,那就可能会出现如下的信息:

[root@linux ~]# /etc/init.d/Postfix stop
[root@linux ~]# echo "test" | Mail -s "testing queue" root
[root@linux ~]# postqueue -p
postqueue: warning: Mail system is down -- accessing queue directly
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
9C2D1A26AC       71 Thu Nov 23 14:59:31  root
                                         root

-- 0 Kbytes in 1 Request.
# 第一行就说明了无法寄出的原因为 Mail system is down
# 然后才出现无法寄出的信件信息,包括来源与目标

输出的信息主要有如下几项。

· Queue ID:表示此封邮件队列的代表号(ID),这个号码是给MTA看的,我们不需要看懂。
· Size:这封信有多大容量(bytes)。
· Arrival Time:表示这封信是何时进入队列的,并且可能会说明无法立即传送出去的原因。
· Sender/Recipient:送信与收信者的电子邮件。

事实上这封信是放置在/var/spool/Postfix里的,由于信件内容已经编码为给MTA看的资料排列,所以您可以使用postcat来读出原信件的内容。可以这样做(注意看文件名与Queue ID的对应):

[root@linux ~]# cd /var/spool/Postfix/Maildrop
[root@linux Maildrop]# postcat 9C2D1A26AC  <==这个文件名是Queue ID
*** ENVELOPE RECORDS 9C2D1A26AC ***         <==说明队列的编号
sender_fullname: root                          <==下面两个为发信者大名与E-mail
sender: root
recipient: root                                 <==收信者
*** MESSAGE CONTENTS 9C2D1A26AC ***         <==下面则是信件的内容
To: root
Subject: testing queue

test
*** HEADER EXTRACTED 9C2D1A26AC ***
*** MESSAGE FILE END 9C2D1A26AC ***

如此一来您就知道目前我们的MTA主机有多少未送出的信件,同时,未送出信件的内容也可以追踪到了。不过,如果想要Postfix立刻尝试将这些在队列中的信件寄出去,该如何操作呢?可以重新启动Postfix,也可以通过Postfix的操作来处理:

[root@linux ~]# /etc/init.d/Postfix restart
[root@linux ~]# Postfix flush

鸟哥个人建议使用Postfix flush即可。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

分享到:

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

Cisco CCNA 640-802题库
Cisco 640-802 Cisco Certified Network Associate (CCNA) Testinside CCNA 640-802 V14 最新题库与Testinside CCNA 640-802 Q

最新热帖

更多>>

51CTO旗下网站

领先的IT技术网站 51CTO 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院 区块链第一聚合媒体 zhijiapro