明文传送用户名和口令。这是一种不太可靠的方式,因为一个恶意的分析者可能通过以
太网监听你的用户口令。
解决问题的办法之一是使用qpopper程序,它提供了一些高级的选项,特别是支持以加
密方式在客户和服务器之间转发口令字,以及对pop3使用与账号登录不同的认证口令。
你可以自己到网上下载qpopper程序并且编译安装。
另外一个问题是sendmail的虚拟域。虚拟域功能是非常有用的,但是它却有一个很严
重的问题,就是pop3服务程序并不能正确地支持sendmail的虚拟域。通常这种情况意味
着你必须自己编写一个pop3服务程序。不过,实际上,最好的办法是使用某些基于web的
信件浏览程序。
7.3 管理邮件队列
一般当你发送一封邮件的时候,sendmail倾向于立刻发送这一封电子邮件。但是如果
当前网络忙使得无法立刻投递信件,或者是目标地址的连接速度太慢,无法在短时间内
投递到目标地址处,那么sendmail将把待发送的邮件排入队列,并在合适的时候重新发
送。
队列文件通常存放在/var/spool/mqueue下面,每个待发送的邮件由几个文件构成,例
如,我们可以看到下面的目录文件列表:
[root@mail mqueue]# ls
dfRAA27175 xfAAA00733 xfBAA00819 xfEAA32763 xfXAA00706
qfRAA27175 xfAAA00784 xfDAA01360 xfFAA01616
文件名字总是由一个两字符的前缀加上一个随机数字。前缀有四钟:
df:邮件内容
qf:邮件头和一些控制信息
xf:一些临时文件
tf:qf文件的临时存储文件
可以通过看队列中的qf文件来确定当前队列信息,不过通常都可以用mailq程序来完成
对队列状态的查询:
root@mail mqueue]# mailq
Mail Queue (1 request)
--Q-ID-- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
-
RAA27175 22429 Fri Feb 25 17:34
(host map: lookup (21cn.net): deferred)
chaszhj@21cn.net
这表示队列中目前只有一封信,由zhangfl发出,收信人是chaszhj@21cn.net。
由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
如果一个用户有多封电子邮件,那么这些邮件就被简单地连接在一起构成一个大文件
(所以你会看到非常巨大的邮件文件)。
要察看邮件系统的状态,使用mailstats命令。
如果你面对的是一个很庞大的邮件服务系统,有时会在某个邮件队列中拥塞太多的消
息,你可能想把这个队列暂停并且在网络空闲的时候再发送,暂停一个邮件队列的办法
非常简单,就是将/var/spool/mqueue目录移走:
killall sendmail
mv /var/spool/mqueue /var/spool/mqueue.stop
mkdir /var/spool/mqueue
sendmail –bd
当网络空闲的时候,可以用-oQ参数立即处理拥塞的队列:
sendmail –oQ/var/spool/mqueue.stop -q
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:
SSH使用指南
下一篇:
SSL中间人攻击
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】