您的位置:首页 > 其它

查看邮件队列里面什么的邮件多

2012-02-08 21:40 267 查看
1、mailq查看邮件队列

2、查看邮件队列里面什么的邮件多用如下命令:

#/usr/sbin/postqueue -p|grep -o "[0-9a-zA-Z][0-9a-zA-Z_.]*@[0-9a-zA-Z][0-9a-zA-Z_.-]*"|sort|uniq -c|sort -nr|more

如果是prima系统那就是

#/usr/prima/postfix/postqueue -p|grep -o "[0-9a-zA-Z][0-9a-zA-Z_.]*@[0-9a-zA-Z][0-9a-zA-Z_.-]*"|sort|uniq -c|sort -nr|more

3、清理邮件队列的工具下载地址

http://www.parallels.com.cn/downloads/Prima/Tools/40-delete_mail_queue.tar.gz

清除邮件队列工具集

*** 安装 ***

tar zxf delete_mail_queue.tar.gz

./install.sh



deletemailqueue.sh

purgequeue.sh

purgerootmail.sh

purgetmp.sh

4个工具安装到/usr/prima/sbin/下

*** purgequeue.sh清除所有退信队列 ***

执行:

/usr/prima/sbin/purgequeue.sh

会将所有发件人是MAILER-DAEMON的邮件队列删除。

*** purgerootmail.sh清除root用户的邮件 ***

执行:

/usr/prima/sbin/purgerootmail.sh

会将root用户的邮件删除,这一般都是退信等

*** purgetmp.sh清除所有用户的临时目录中的邮件 ***

执行:

/usr/prima/sbin/purgetmp.sh

会将所有用户的临时目录中的邮件

*** 如果要每10分钟运行一次清退信程序 ***

编辑/etc/crontab,加入:

*/10 * * * * vmail /usr/prima/sbin/purgequeue.sh

*** 如果要删除某个发件人(例如:junk@domain.com)发出的邮件,要修改purgequeue.sh:

mailq|grep MAILER-DAEMON|awk '{ if ( NF > 1 ) print $1}'| awk -F '*' '{print $1}' | $deletemailqueue

改为:

mailq|grep junk@domain.com|awk '{ if ( NF > 1 ) print $1}'| awk -F '*' '{print $1}' | $deletemailqueue

即可

------------------------------------------------------------------------------------------

不用工具的话,可以用如下方法:

进入/usr/prima/postfix/sbin目录,执行 postsuper -d ALL删除所有的队列邮件

#cd /usr/prima/postfix/sbin

[root@mail sbin]# postsuper -d ALL 执行完会显示

postsuper: Deleted: 234673 messages 如这样的信息

反垃圾规则:在main.cf里面加入这个,这样发也很快,收也很快.

smtpd_sender_restrictions = reject_unauth_pipelining,

permit_mynetworks,

reject_unknown_recipient_domain,

permit_sasl_authenticated,

xheader_if_reject reject_unknown_client,

xheader_if_reject reject_unknown_hostname,

xheader_if_reject reject_unknown_sender_domain,

xheader_if_reject reject_invalid_hostname,

xheader_if_reject reject_non_fqdn_hostname,

xheader_if_reject reject_non_fqdn_sender,

xheader_if_reject reject_non_fqdn_recipient,

check_sender_access hash:/usr/prima/postfix/conf/freemail_access,

reject_unauth_destination

#smtpd_sender_restrictions =reject_unauth_destination

smtpd_sasl_authenticated_header = yes

smtpd_sasl_path = smtpd

--------------------------------------------------------------------------------------------------

用户发邮件有两个来源:

1. 使用smtp

2. 使用sendmail,用程序发信

可以用命令

grep sasl_username /var/log/maillog | awk '{print $9}'|sort

查看那些用户用SMTP发信

可以用命令

grep uid= /var/log/maillog | grep -v uid=0 | awk '{printf("%s %s\n", $7,$8)}' | sort

察看那些用户用sendmail发信。继而可以用

grep :x:UID: /etc/passwd

命令查到该用户是那个站点的。

本文出自 “冰鱼客” 博客,请务必保留此出处http://guailele.blog.51cto.com/1156442/775000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: