我们有一部分邮件过滤器拒绝通过电子邮件发送系统帐户以达到安全目的。我们最近创建了一个以" bin"结尾的用户。 bin用户是受限制的,但是用户,比如l.parrbin,通过以下语法标记:
my @sysaccounts = qw(
root bin daemon adm lp sync shutdown halt mail
news uucp operator games gopher ftp nobody nscd
vcsa rpc mailnull smmsp apache pcap ntp dbus
avahi rpcusder nfsnobody sshd haldaemon xfs defang
clamav monit mysql decode webmaster mailer-daemon
nagios
);
foreach $acct(@sysaccounts){
if ($recip =~ /$acct\@/i){
md_syslog('info', 'Sysaccount Discard');
return('REJECT', "We do not accept messages to system accounts ($acct)");
}
}
如果名称结束或以sysaccounts中的名称开头,我如何阻止上述代码返回REJECT?
答案 0 :(得分:1)
尝试这样做:
if ($recip =~ /^$acct\@/i){
# ^
在正则表达式中,^
是一个锚,意思是行的开头(此处为字符串)