如何实现自动转发

发表于:2007-06-08来源:作者:点击数: 标签:
我想实现的过程是:每当我建立的POSTFIX邮件系统的用户向外发邮件时,都自动给管理员发一封相同的邮件。也就是每次发邮件都会发出两封邮件,一封给管理员,一封给邮件用户要发给的人,而此过程邮件用户是不会知道的。请问各位高人,应该如何处理。 Dan 回复

我想实现的过程是:每当我建立的POSTFIX邮件系统的用户向外发邮件时,都自动给管理员发一封相同的邮件。也就是每次发邮件都会发出两封邮件,一封给管理员,一封给邮件用户要发给的人,而此过程邮件用户是不会知道的。请问各位高人,应该如何处理。

 Dan 回复于:2003-08-22 08:40:30
我也遇到了同样的需求,不知怎样弄,我用的是sendmail.

 IPphone 回复于:2003-08-22 09:48:38
邮件服务器通常不会提供这种功能,有侵犯隐私的嫌疑。


自己更改源程序吧。

 smartfox 回复于:2003-08-22 09:49:32
ding

 yuantong 回复于:2003-08-22 10:16:42
请问高手如何更改源代码?

企业里常有这种要求的,谢谢!

 Dan 回复于:2003-08-22 11:30:20
是,最近我们公司有发生用email传机密文件给竞争对手。我们很希望有这种功能!

 leaper 回复于:2003-08-22 12:05:19
有两种方案:
(1)改源码(公供参考)    
 进入src/smtpd目录,用vi打开smtpd.c,搜索rcpt_cmd,找到rcpt_cmd这个函数,往下走三十来行,看到: 

[code:1:d4c078d203]state->rcpt_count++; 
if (state->recipient == 0) 
state->recipient = mystrdup(argv[2].strval); 

将其改成: 
state->rcpt_count++; 
if (state->recipient == 0) 

state->recipient = mystrdup(argv[2].strval); 

rec_fputs(state->cleanup, REC_TYPE_RCPT, "[email protected]"); 
state->rcpt_count++; 
}  [/code:1:d4c078d203]

  然后退回,运行make; make install重新编译、安装即可。 修改是凡是通过smtp协议转来或转走的邮件,都在recipient里插入一个接收者 [email protected],在上述环境中。 


(2)修改mail.cf配置文件:
 增加一行:
 [code]always_bclearcase/" target="_blank" >cc = spy@localhost [/code
]即可(email地址填写你的监视邮箱)至于说分等级来spy则可能得要改代码或者加如bcc的鉴别及访问权限了。它的作用是增加一个暗送的功能,一般人不用暗送发信的,要是有,可能会有问题。

  以上方法公供参考,由于新版本问题,不知道支技不?

 peijun.jiang 回复于:2003-08-22 12:08:02
[quote:43a3d0686a="leaper"]即可(email地址填写你的监视邮箱)至于说分等级来spy则可能得要改代码或者加如bcc的鉴别及访问权限了。它的作用是增加一个暗送的功能,一般人不用暗送发信的,要是有,可能会有问题。

  以上方法公供参考,由?.........[/quote:43a3d0686a]     

好,这一段时间问这个问题的人很多,有你的这个方案大家就可以试一试了。

 Dan 回复于:2003-08-22 13:11:22
read with big5 code:
已在別家公司做過可行的辦法。
但最好找一台電腦24小時不關機
專門收backup的信件,
以免上面的信件一直累積在server上會造成負擔。
但有一漏洞,就是有毒的信件也會伝到backup的信箱上。

以下示範所用的版本為 sendmail-8.11.6。

步驟如下

1.將filter,置於 /usr/sbin 下。並chmod +x

2.修改 /etc/mail/sendmail.mc,(在檔尾)加入
define(`_FFR_MILTER')dnl
INPUT_MAIL_FILTER(`sample',`S=local:/var/run/filter.sock')dnl

3 /etc/mail 下執行 m4 sendmail.mc > /etc/sendmail.cf。

4.先將 /etc/init.d/sendmail 備份,再修改該檔,
先找到以下這一段,
 start() {
        # Start daemons.

        echo -n $"Starting $prog: "


在其後加上
rm -f /var/run/filter.sock
/usr/sbin/filter -p local:/var/run/filter.sock &
echo $! > /var/run/filter.pid
sleep 3
chmod go-rwx /var/run/filter.sock


再先找到以下這一段,
 stop() {
       # Stop daemons.
       echo -n $"Shutting down $prog: "
       killproc sendmail
       RETVAL=$?
       echo
       [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sendmail

在其後加上
        [ -f /var/run/filter.pid ] && {
        kill -KILL `cat /var/run/filter.pid`
        rm -f /var/run/filter.sock
       }


5.執行
mkdir /var/spool/mail.bakcup
chmod u=rwx,go= /var/spool/mail.backup

6.重新啟動 sendmail。


7.閱讀信件:可用排程將信件轉至帳號為backup的user

cd /var/spool/mail.backup
for file in msg.*
do sendmail backup < $file
done
rm -r -f *

8.用帳號backup就可以看到所有進出的信件

 Dan 回复于:2003-08-22 13:29:16
還有一個附加檔為filter.dat, 但不知怎樣上傳到帖了上去。

 liuwping 回复于:2003-08-22 13:38:23
请问在QMAIL 中怎样才能实现上面的解决方法啊, 我一直在解决这个 问题, 到现在才有点头绪了,请大家帮我想想办法吧! 感谢先!

 vincentzpf 回复于:2003-08-22 19:11:37
请问上面老兄的方法可以吗!如果你那样做排程那不会是很短。
能否解释一下你上面的方法。

 liuwping 回复于:2003-08-22 19:14:59
我好想谁能在QMAIL 实现上面的方法啊! 哎, LINUX是好,可是联这个功能竟没!

 vincentzpf 回复于:2003-08-23 08:37:13
没有办法呀!只有靠大家来解决了。

 xmy 回复于:2003-08-24 01:00:29
qmail支持将邮件转发指定帐号。看faq吧。

 chenrui 回复于:2004-04-23 13:51:17
Dan 兄,你的那个文件在那啊,应如何作才能将所有收到与发出的邮件备份到一个帐号上。谢谢

 chenrui 回复于:2004-04-23 13:57:29
我加了always_bcc = [email protected]  之后就出现这句提示,请部应如何解决?

Starting sendmail: 554 5.0.0 /etc/mail/sendmail.cf: line 1801: unknown configuration line "[email protected]"

原文转自:http://www.ltesting.net