关于sendmail信件队列:
对于 Sendmail 设定到目前为止,应该也可以正常的应付蛮多工作的啦!
但是我们还是得要了解一下的是:如果我将邮件送到 Sendmail 主机后,Sendmail 便会帮我将该封邮件传送到目的地的 MTA ,不过,如果目的地 MTA 主机有问题时,这封信会怎么跑?
一般来说,如果 DNS 设定正确的话,也就是说目的地 MTA 有 MX 标志存在时,只是刚好这部主机暂时无法联机,或者是有些问题,导致无法立即接受来自你的 MTA 的邮件,此时这封邮件将会被放置到你的 MTA 主机的队列目录去,通常预设是在 /var/spool/mqueue 当中!
然后在一定的周期时间内, Sendmail 会定时的尝试将邮件寄送出去,一般 Sendmail 的预设设定是:
1. 如果该封信在五分钟之内无法寄出,则系统会发出一封『警告信』给原发信者,告知该封邮件尚无法被寄送出去,不过,系统仍会持续的尝试寄出该封邮件;
2. 如果在四小时候仍无法寄出,系统会再次的发出警告信给原发信者;
3. 如果持续进行五天都无法将信件送出,那么该封邮件就会退回给原发信者了!
在 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 看的,不是给人看的,所以我们都不可能看的懂他的讯息!这个时候,只得以 Sendmail 的指令来反查这些邮件队列到底是什么咚咚了!很简单的,只要下达 mailq 或者是 sendmail -bp 就可以这些邮件队列的基本数据!
[root@test root]# mailq
/var/spool/mqueue (1 requests)
----Q-ID---- --Size-- -----Q-Time----- ------------Sender/Recipient------------
h1LEKYR23711 36414 Fri Feb 21 22:20
(Deferred: Connection refused by vbird.adsldns.org)
Q-ID:表示此封邮件队列的代表号 ( ID );
Size :这封信有多大容量 ( bytes )的意思;
Q-Time:这封信什么时候进入 /var/spool/mqueue 这个目录的,并且说明无法立即传送出去的原因 (例如上面的 Deferred );
Sender/Recipient:送信与收信者的电子邮件啰!
如果您有开放邮件的话,那么记得偶而要去看一看您的邮件队列 ( mailq ) 是否存在大量的未寄出信件喔!好让你知道是否可能被当作转信站啦!
【编辑推荐】
- Sendmail的功能之别名设定与邮件备份
- Sendmail的功能之群发
- Sendmail的邮件目录
- Sendmail邮件收受流程(一)
- Sendmail邮件收受流程(二)
- Sendmail的功能之寄送外部邮件
- Sendmail配置笔记之配置篇
- Sendmail配置笔记之安装篇