qmail技巧文章(2)

12/3/2006来源:Qmail人气:5322

如何使得Qmail在NFS或者NIS有问题时延迟发送邮件

如何设置一个邮件地址的控制者

如何安全地停止qmail-send进程

如何设置Qmail以增加并发发送进程

1)
如果用户目录在NFS上面,或者用户的信息存放在NIS上面,那么当NFS服务器或者NIS服务器出问题的时候,Qmail系统会当作用户不存在而弹回信件,如何处理这个问题。

1-1)
在本机建立一个Qmail用户数据库,这样Qmail就不再查找用户的home目录还有密码数据库,这个操作有三步:
首先,把所有用户列表(包括本地和NIS密码)存放到/var/qmail/users/passwd

运行
# qmail-pw2u -h < /var/qmail/users/passwd > /var/qmail/users/assign
这里-h的意思是所有用户都必须有home目录,如果正巧在NFS出问题的时候运行这个命令,将会出现错误信息并停止。

运行
# qmail-newu


记住如果用户发生改变后要重新生成这个数据库。

2)
有时候,管理员设置了~alias/.qmail-www做一个别名设置,但是Qmail却到~www/.qmail中查找用户信息。如何解决?

2-1)
管理员可以使用
# chown root ~www
这样qmail就不再把www当成是一个用户了。

3)
在使用sendmail的时候,如果要停止sendmail,直接用kill sendmail进程的时候需要一定的技巧,否则会导致当前传递的信件丢失。但是qmail-send不一样,你可以直接kill qmail-send进程,它会干净利索地关闭,没有sendmail的问题。如果在log里面出现waiting,那么证明qmail-senfd已经关闭。如果要启动qmail-send进程,那么执行/var/qmail/rc就行。

4)
Qmail缺省只有20个并发qmail-remote进程,如何增加这个数目?

4-1)
决定你的机器实际需要多少个并发发送进程,然后在control/concurrencyremote里面填写并发发送进程,并重新启动qmail-send进程即可。同时记住设置系统描述符至少是这个数目乘以5的两倍以上。否则在投递大量信件的时候会出现不必要的延迟。并且编译的时候已经在conf-rspawn里面设置这个数目最多只能是120。

,