本帖收集论坛内的Qmail相关的FAQ。
抄袭无双的话,“在论坛的回答中有许多好的回答,但是如果每一个都要写到精华的话
那么精华又未免太多了”;同时也为了避免各位重复讨论相同的小问题,我就整理了这篇文档。
另外,涉及的方面太多,我不可能一一尝试,如有谬误,请不吝赐教。
建议大家把自己认为好的回答写到这个帖子的回复中,并写上讨论的帖子连接
准备分几个部分。
第一部分:MTA
第二部分:igenus
第三部分: sqwebmail
第四部分: vpopmail + qmailadmin
各位还可以补充。
我们会定期将各位提供的FAQ和论坛上的好东西整理进去,并为各位作者署名。
第一部分:MTA
[b:faa5b147e2]1: 怎么加快 qmail 投递邮件速度?[/b:faa5b147e2]
A: /var/qmail/control下面是qmail的控制文件,这两个文件:
Concurrentcylocal default: 10 最大本地同时传送数
Concurrencyremote default: 20 最大远程同时传送数
[b:faa5b147e2]2: Qmail的主要配置文件有哪些?[/b:faa5b147e2]
A: http://chinaunix.net/forum/viewtopic.php?t=1126
[b:faa5b147e2]3: qmail+LDAP安装配置方法? (netloafer)[/b:faa5b147e2]
A: http://chinaunix.net/forum/viewtopic.php?t=1119
[b:faa5b147e2]4:Qmail如何限制附件的大小呢??[/b:faa5b147e2]
A:
在/var/qmail/control/databytes 文件中设置附件的大小,可以实现对qmail附件大小的限制,一般安装完成后,这个文件是没有的,你可以自己创建。
smtp方式是以qmail的databytes作限制的
[b:faa5b147e2]5: 用qmail怎么封mailfrom? (peng)[/b:faa5b147e2]
A:使用qmail控制文件封整个域或邮件地址
vi/var/qmail/control/badmailfrom
这个控制文件实现拒收邮件功能的,每一个地址要单独一行。而且,不用重起qmail就能生效。
例如:
peng@96633.net-----限制一个特定的用户
@sina.com----限制整个域中的邮件
B:使用tcprules规则文件封IP地址(gadfly)。
#网段
10.10.10.:deny
#ip
10.10.10.1:deny
重新生成cdb文件就好了
[b:faa5b147e2]6. 如何让队列中的邮件马上传递? (peng) [/b:faa5b147e2]
A:
# kill -HUP qmail-send
要删除队列中的邮件
1) 停止QMAIL
2) mv /var/qmail/queue/lock /var/qmail/;find /var/qmail/queue/ -type f -exec rm {} \; ;mv /var/qmail/lock /var/qmail/queue/
3) 重启QMAIL.
队列中的邮件包含在以下目录中 /var/qmail/queue/{info,mess,remote,local}/hash/#number
[b:faa5b147e2]7、在邮件队列中快速删除从一个地方发过来但又不存在的邮件? (peng)[/b:faa5b147e2]
A:
设bad.jite.com是这个域。可以键入以下命令
# echo # > ~alias/.qmail-baddomain-default
# echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains
# echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes
然后运行/var/qmail/bin/qmail-tcpok,给qmail-send 一个HUP信号
[b:faa5b147e2]8、如何删除队列中的大量广告信息? (peng)[/b:faa5b147e2]
A:
先停止QMAIL.
1) 停止qmail, qmail-smtpd
2) 在以下默认目录下 /var/qmail/queue/mess
find . -type f -exec grep "^Subject:" {} \; -print -exec rm {} \;
3) 运行queue-fix清除相关文件,
4) 重启qmail.
[b:faa5b147e2]9、rh9下编译qmail出错:
./load auto-str substdio.a error.a str.a
substdio.a(substdo.o)(.text+0x43): In function `allwrite':
: undefined reference to `errno'
collect2: ld returned 1 exit status
make: *** [auto-str] Error 1
什么问题?(microcao &linuxsky)[/b:faa5b147e2]
A: errno 这个错误是因为 RH9 系统使用了新的 GLIBC 库 2.3.1 造成的
需要修改 QMAIL 的代码才能编译另外 DJB 的几乎所有程序都存在这个问题
QMAIL 官方已经提供了推荐的补丁
http://www.qmail.org/top.html#patches
打个这个补丁就行了
http://qmail.mirrors.space.net/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch
至于tcpserver可能也有相同的问题,patch都可以在以下目录找到
http://qmail.mirrors.space.net/moni.csi.hu/pub/glibc-2.3.1/
[b:faa5b147e2]10:Apr 7 17:52:15 www qmail: 1049709135.048259 delivery 38: deferral: Uh-oh:_home_directory_is_writable._(#4.7.0)如何解决? [/b:faa5b147e2]
A:需要将用户的邮件目录修改为700
由于vpopmail利用的是wildcard方式匹配的,所以homedir必须从domain的目录开始。假设gadfly@test.com目录是/home/vpopmail/domains/test.com/gadfly/
这样修改属性:
cd /home/vpopmail/domains/;chmod 700 test.com test.com/gadfly test.com/gadfly/Maildir/
[b:faa5b147e2]11:.qmail file is writable错误如何解决?(xmy)[/b:faa5b147e2]
A:用户目录下的.qmail文件组和其它用户属性不能可写。
至于vpopmail方式, 域目录下的.qmail-*必须去掉写属性
chmod go-w .qmail-*
或者
chmod 600 .qmail-*
此外还需注意的文件属性有libmysqlclient.so.10.0.0
chmod 755 /usr/lib/libmysqlclient.so.10.0.0
[b:faa5b147e2]12: 每发完一封
邮件后都会自动回复一封内容大概就是说发不出去的意思。自动回复的信件内容是这样的
.....
<log@yourdomain>: