Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189602
  • 博文数量: 77
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 45
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-25 10:50
文章分类

全部博文(77)

文章存档

2018年(1)

2017年(3)

2016年(4)

2015年(4)

2014年(16)

2013年(7)

2012年(20)

2011年(22)

分类: LINUX

2011-06-02 09:27:22

以下内容我从http://zhumeng8337797.blog.163.com/blog/static/10076891420113401056999/转来,由于自己使用的是POStFIX,留作作为参考资料。
 
首先在Mailscanner.conf的作如下更改

QUOTE:
#Archive Mail = %rules-dir%/archive.rules

然后进入rules目录,看有没有archive.rules文件,如果没有就建立

QUOTE:
FromOrTo: yes forward

From表示将发出的邮件转发一份给

To 表示将发给的邮件转发一份给



比如单独要将发出的邮件转给作如下更改

QUOTE:
From: yes forward   


改完后要重启动MailScanner.


另外可以监控整个域的邮件用用*@abc.com

也可以监控所有邮件用*代替.

 


 

postfix本身的功能也可以实现

在main.cf加上这个参数:

QUOTE:
sender_bcc_maps = hash:/etc/postfix/maps(这个名可随便起)


然后在/etc/postfix/maps写转发和接收的邮箱,比如将发出的信转给

QUOTE:
abc@abc.com


如果要监控多个用户,可以写多行,一条一行.

改好后在终端执行以下命令,生成postfix认识的格式

QUOTE:
postmap hash:/etc/postfix/maps


另外main.cf参数还有:
寄件备份 sender_bcc_maps
收件备份 recipient_bcc_maps
寄件及收件备份 always_bcc

 

==================================

 

代码
  1.   添加数据表mail_watch   
  2. Create TABLE `mail_watch` (   
  3.   `sender` varchar(100)  NOT NULL,   
  4.   `bcc` varchar(100)  NOT NULL,   
  5.   PRIMARY KEY  (`sender`)   
  6. )   
  7.   
  8. main.cf   
  9.   
  10. sender_bcc_maps = mysql:/etc/postfix/mail_watch.cf   
  11. recipient_bcc_maps = mysql:/etc/postfix/mail_watch.cf   
  12.   
  13. mysql_watch.cf   
  14.   
  15. user = postfix  
  16. password = xxxxx  
  17. dbname = postfix  
  18. table = mail_watch  
  19. select_field = bcc  
  20. where_field = sender  
  21. hosts = localhost  


这样就可以指定某个人监控某个人的邮件

Postfix的邮件监控

一、修改main.cf

vi /etc/postfix/main.cf

添加以下内容:

recipient_bcc_maps = hash:/etc/postfix/recipient_bcc

sender_bcc_maps = hash:/etc/postfix/sender_bcc

二、新建文件

1.touch /etc/postfix/recipient_bcc

2. touch /etc/postfix/sender_bcc

三、建立监控邮件

1. 建立接受监控邮件的账户:monitor@163.com

2. 建立被监控的邮件:

vi /etc/postfix/recipient_bcc

wangwu@163.com monitor@163.com

vi /etc/postfix/sender_bcc

wangwu@163.com monitor@163.com

四、建map数据库

1. postmap /etc/postfix/recipient_bcc

2. postmap /etc/postfix/sender_bcc

五、重启服务

service postfix restart

postfix的bcc(密送)功能可以根据条件,将所有经过postfix队列的邮件根据规则密送到指定的邮箱。
postfix带有三个bcc参数:
①、always_bcc:将所有的邮件都备份到指定邮箱;
②、sender_bcc_maps:将收件人包含在map文件中的邮件被分到指定邮箱;
③、recipient_bcc_maps:将收件人包含在map文件中的邮件被分到指定邮箱。
 
1、recipient_bcc_maps和sender_bcc_maps的使用
# vi /etc/postfix/main.cf #增加下面两行
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
sender_bcc_maps = hash:/etc/postfix/sender_bcc
 
# cat sender_bcc
      
# cat recipient_bcc
  
 
#postmap /etc/postfix/sender_bcc
#postmap /etc/postfix/recipient_bcc
 
#/etc/init.d/postfix reload
 
2、always_bcc的使用方法
# vi /etc/postfix/main.cf #增加下面一行
always_bcc =
 
#/etc/init.d/postfix reload
 
注意:如果bbc被弹回,退信将被退回到发件人
使用Cacti来监控Postfix的邮件队列

逛了一圈Cacti的论坛,各种使用来监控应用的HOWTO,也看到了一条监控Postfix的Howto。
首先要能用snmp服务从服务器上使用脚本抓取到postqueue信息:

 
1 #!/bin/bash
2 # check postfix mail for snmpd
3 mailq=$(mailq | grep 'Request')
4 if [ $? -eq 1 ]; then
5         echo '0'
6         exit 0
7 fi
8 mail_sum=$(echo $mailq | awk '{print $5}')
9 echo $mail_sum

其次要在snmpd.conf里增加相应的snmpwalk条目:
exec .1.3.6.1.4.1.2021.53.101.0 mailq /mail/etc/mailq.sh
重启snmpd服务,使用以下命令测试是否正常工作:
[root@mx3 ~]# snmpwalk -v 2c 127.0.0.1 -c public .1.3.6.1.4.1.2021.53.101.0.101.1
UCD-SNMP-MIB::ucdavis.53.101.0.101.1 = STRING: “45″

接着导入cacti的data和graph模板,模板可以从论坛下载到,链接如下:

在cacti的Console -> Devices里选择相应的邮局服务器IP,点击Create Graphs for this Host,新建一个图;在Graph Templates下拉菜单里选择postfix queue,点击create按钮;

接着在Console -> Graph Management里查到相应IP,会列出该IP拥有的图表,如:192.168.1.250 – Postfix Queue,勾选后面的复选框,在Choose an action里选择 Place to tree(老板邮局),点击go按钮,在Destination Branch下拉菜单里选择相应的IP,点击yes。

在Graphs -> Tree Mode里查看相应的IP地址所拥有的图,等待几分钟,就能看到队列的状态图。

postfix_ mailserver 监控 for Cacti postfix_ mailserver 监控 for Cacti

Details in

1.下载 postfix_mailserver.tar.gz  

2.解压得到两个文件

cacti_host_template_postfix_mailserver.xml

fetch_mail_statistics.pl

3.在cacti的机子上的Console 的Import Templates 中导入cacti_host_template_postfix_mailserver.xml保存

4.在装有postfix的邮件服务器上fetch_mail_statistics.pl 的路径如下,请确保的执行权限

-rwxr-xr-x  1 root root 5531 Jun 21 17:36 /usr/local/bin/fetch_mail_statistics.pl

5.安装net-snmp(在装有postfix的邮件服务器上)

yum install net-snmp*

6.编辑/etc/snmp/snmp.conf  修改的地方如下

#       sec.name  source          community
com2sec notConfigUser        ip       public     // ip为cacti主机的ip

#       group          context sec.model sec.level prefix read   write  notif
access  notConfigGroup ""      any       noauth    exact  all none none         //none 改为all

##           incl/excl subtree                          mask
view all    included  .1                               80           // 这一行的注释"#"去掉

追加

pass .1.3.6.1.4.1.2021.255 /usr/local/bin/fetch_mail_statistics.pl /var/log/mail.log /var/log/mailstats.db .1.3.6.1.4.1.2021.255

保存 ,重起snmpd 

service snmpd restart

7.然后在cacti 端添加 新的devices Host Template 请选择postfix mailserver

8.常见问题 解决

Error in packet
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: .1.3.6.1.4.1.2021.255

1.检查 iptables 是否允许snmp 数据包通过

2.请关闭 selinux (RHEL   和centos 会出现这个问题)

把 /etc/selinux/config  改为

SELINUX=disabled

重起

阅读(3923) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~