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

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系统那就是
 

  
  
  
  
  1. #/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

*** 如果要删除某个发件人(例如:[email protected])发出的邮件,要修改purgequeue.sh:
mailq|grep MAILER-DAEMON|awk '{ if ( NF > 1 ) print $1}'| awk -F '*' '{print $1}' | $deletemailqueue
改为:
mailq|grep [email protected]|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
命令查到该用户是那个站点的。
 

你可能感兴趣的:(职场,postfix,休闲)