`
webcenterol
  • 浏览: 916129 次
文章分类
社区版块
存档分类
最新评论

qmail服务器维护

 
阅读更多
qmail服务器维护
常用操作:
增加用户 vadduser huch1@b2btest.com hello


批量增加用户:
Icbu:
chenting@b2btest.com
duping@b2btest.com
luoshenghua@b2btest.com


#!/bin/bash
LIST="/home/vpopmail/bin/icbu"
sed -i '/^$/d' ${LIST}
exec 3<${LIST}
while read -u3 IP
do
/home/vpopmail/bin/vadduser ${IP} hello
done

清除队列:

#!/bin/bash
num=`/usr/bin/qmailctl queue|head -1|awk '{print $4}'`
echo $num
MAX=10000
if [ $num -gt $MAX ]
then
/usr/local/sbin/qmail-remove -r
else
echo "Your Qmailqueue is less than $MAX, No need remove queue"
fi

删除邮件:

#!/bin/bash
while read name
do
[ -d /home/vpopmail/domains/b2btest.com/$name/Maildir/new ] &&find /home/vpopmail/domains/b2btest.com/$name/Maildir/new -type f -name"*.alitest144*"| xargs /bin/rm -f
[ -d /home/vpopmail/domains/b2btest.com/0/$name/Maildir/new ]&& find /home/vpopmail/domains/b2btest.com/0/$name/Maildir/new-type f -name "*.alitest144*"| xargs /bin/rm -f
done < /root/list


TCPRule指定:
cd /home/vpopmail/etc/
cat tcp.smtp
127.:allow,RELAYCLIENT=""
10.0.:allow,RELAYCLIENT=""
:allow

tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

qmailctl restart


磁盘占用与inode:
Df 与df - i
删除大量文件释放空间:
echo *|xargs rm -f &


find /var/spool/clientmqueue -type f |xargs rm -f

netstat -an| grep "10.20.136.72:25"|sort |uniq -c|sort -nr
.remove_queue.sh
查看通信情况

=================================================
1.查看配置文件
/var/qmail/bin/qmail-showctl

2.查看当前qmail邮件队列里消息的报告
/var/qmail/bin/qmail-qread

3.查看状态
/var/qmail/bin/qmail-qstat

svstat /var/service/*

4. 立即发出所有邮件
killall -HUP qmail-send

5. 启动
svc -u /var/service/qmail &
svc -u /var/service/smtpd &
svc -u /var/service/pop3d &

supervise /var/qmail/supervise/qmail/ &
supervise /var/qmail/supervise/smtpd/ &
supervise /var/qmail/supervise/pop3d/ &

6.ps -auxf | grep qmail 查看进程,看邮件服务器是否启了

========================================
常见问题:

7、QMAIL下的主要配置文件(/var/qmail/control目录下):

文件名 默认值 使用者 用途
badmailfrom none qmail-smtpd 黑名单地址
bouncefrom MAILER-DAEMON qmail-send 退回邮件
bouncehost me qmail-send 退回邮件
concurrencylocal 10 qmail-send 本地同时投递邮件的数目
concurrencyremote 20 qmail-send 同时投递至远程主机的数目
defaultdomain me qmail-inject 默认域名
defaulthost me qmail-inject 默认主机名
databytes 0 qmail-smtpd 邮件的最大容量 (0=无限制)
doublebouncehost me qmail-send
doublebounceto postmaster qmail-send
envnoathost me qmail-send 没有"@"的默认域名
helohost me qmail-remote 主机名
idhost me qmail-inject Message-ID的主机名
localiphost me qmail-smtpd 本地IP的替代名
locals me qmail-send 传递至本地的域名
me 系统正式域名 various
morercpthosts none qmail-smtpd 第二个rcpthosts
percenthack none qmail-send 使用 "%"格式的域名
plusdomain me qmail-inject
qmqpservers none qmail-qmqpc QMQP服务器的IP地址
queuelifetime 604800 qmail-send 在队列中邮件保存的时间(秒)
rcpthosts none qmail-smtpd 接收邮件的域名
smtpgreeting me qmail-smtpd
smtproutes none qmail-remote
timeoutconnect 60 qmail-remote SMTP连接超时时间
timeoutremote 1200 qmail-remote 等待远程主机的时间
timeoutsmtpd 1200 qmail-smtpd SMTP客户连接超时的时间
virtualdomains none qmail-send 虚拟域名

8、如何限制邮箱大小
a、可以根据用户使用磁盘空间限制来控制邮箱的大小,但仅靠此还有几个问题:假如邮件太大被退回,这封信会延期发送,超过20M的邮件会一直在你的邮件队列里。可以用以下脚本来修复此问题。
http://qmail.valueclick.com/qmail/qmail-1.03-quotas-1.1.patch
b、另外一个解决方案,可在以下处找到http://www.tibus.net/pgregg/projects/qmail/mailquotacheck/
,它会根据设置情况对每个用户来检查所有传递进来的邮件,可以根据设置的大小来退回邮件,并不需要LINUX自已的磁盘限制。

9、SMTP转发限制
可以在以下网址找到:http://www.qcc.sk.ca/~bguenter/distrib/relay-ctrl/
它可据主机和POP3验证来控制SMTP转发
SMTP的验证信息可以在以下处找到:
http://members.elysium.pl/brush/qmail-smtpd-auth/index.html
http://members.elysium.pl/brush/cmd5checkpw/index.html
http://members.elysium.pl/brush/smtp-auth/index.html

10、处理队列中的邮件:
如想在队列中的邮件马上传递,可以kill –HUP qmail-send
要删除队列中的邮件
1) 停止QMAIL
2) find /var/qmail/queue/$i -type f -exec rm {} \;
3) 重启QMAIL.
队列中的邮件包含在以下目录中 /var/qmail/queue/{info,mess,remote,local}/hash/#number

11、在邮件队列中快速删除从一个地方发过来但又不存在的邮件
假设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信号



关于别名
如我需要一个帐号feng.ming@jite.com来收到fengm上的帐号,但设置了以后却收不到信?
出于安全的考虑,qmail-local不处理带.号的帐号别名,可以使用:号来代替,另外别名不区分大小写。

12、如何收取一个域名的部份帐号
如果想接收aaa@jite.com,
bbb@jite.com, ccc@jite.com, 但xxx@jite.com
yyy@jite.com会发送到www3.jite.com.
在control/rcphosts中加入jite.com
在control/virtualdomains另入jite.com:alias-jite
建立一个别名 ~alias/.qmail-example-aaa:
&aaa
bbb跟ccc一样
建立 ~alias/.qmail-example-default:
|forward "$DEFAULT@www3.jite.com"
重启qmail
另外的使用方法是用fastforward

13、删除队列中的大量广告信息
先停止QMAIL.
1) 停止qmail, qmail-smtpd
2) 在以下默认目录下 /var/qmail/queue/mess
find /var/qmail/queue/mess -type f -exec grep "^Subject: asfafasfas" {} \; -print -exec rm {} \;
3) 运行queue-fix 清除相关文件,
4) 重启qmail.
queue-fix可以在以下网址找到:http://www.netmeridian.com/e-huss/queue-fix.tar.gz

14、如何临时收取一个域的邮件
将此域增加至rcpthosts中, 但不要存放于locals下. 另外有第二的MX记录指向此域 。

15、为何显示没有此用户
出于安全的考虑,qmail拒绝传递给不是home目录ower的用户,比如我的帐号为fengming,home目录默认情况下设为/home/fengming,后来将home目录更改为/www,收发邮件就会有问题。

16.qmail日志的管理:
a. 使用multilog程序将邮件日志存放在/var/log/qmail目录下,其中smtpd与pop3d的相关日志分别存放在子目录smtpd与pop3中。
b. multilog程序能根据要求,自动循环维持日志文件的大小,将原来的内容转存为另一文件。
c. 由于采用另一种形式的时间戳,所以要查看时间,则需用程序tai64nlocal将时间戳转换成可读形式。

深入学习qmail参考:
qmail控制文件详解:http://bbs.chinaunix.net/viewthread.php?tid=1126
qmail源代码分析:http://blog.chinaunix.net/u/5591/showart_257313.html
qmail队列工作原理:http://blog.chinaunix.net/u/5591/showart_259752.html
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics