- 论坛徽章:
- 0
|
以前没有学过perl,现在突然领导给一个任务,用mimedefang做sendmail的milter,对邮件组的发送权限进行控制,
昨天临时看了一下perl,在mimedefang-filter中加了一段代码,但是测试时,所有人都不能对all组发邮件了,
说明:我的思路是,先对收件人进行检查,如果收件人是all@rhel4.local,则再检查发件人是不是在文件all_allow内,如果不在就REJECT.
如果收件人不是all@rhel4.local则直接放行。以是下代码:
- sub filter_recipient {
- use strict;
- my ($recipient, $sender, $ip, $hostname, $first, $helo,$rcpt_mailer, $rcpt_host, $rcpt_addr) = @_;
- if ($recipient =~ /^<?all\@rhel4\.local>?$/i) {
- open (FILE,'/etc/mail/all_allow') || die "Can't open file:$!\n";
- while ($line = <FILE>) {
- if ($line =~ /$sender/) {
- return ('CONTINUE', "ok");
- }
- return ('REJECT', 'Sorry; you are not allowed to mail to [email]all@rhel4.local[/email]');
- }
- }
- return ('CONTINUE', "ok");
- }
复制代码
各位表我诊断一下吧,由于现在急用,不能一从新学perl了
[ 本帖最后由 sunrocs 于 2008-5-28 13:23 编辑 ] |
|