특정 도메인을 제외한 모든 목록을 Amavisd 허용
당신이 필요로하는 것은 regex lookaround ( here ) 가있는 whitelist_sender_map ( here )입니다
Domain.X를 제외한 모든 허용
@whitelist_sender_maps = (new_RE (
qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i
));
X의 도메인 및 하위 도메인을 제외한 모든 도메인을 허용
@whitelist_sender_maps = (new_RE (
qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))'i
));
수정
예를 들어 msn.com을 화이트리스트 예외에 추가
@whitelist_sender_maps = (new_RE (
qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $ | msn \ .com $))'i
));
여러 가지 규칙에 규칙을 위반하지 마십시오. 귀하가 원하는 것은 아닙니다.
2 줄 이상으로 규칙을 어기면 화이트리스트가 모두 !!
(가능한 경우이 섹션을 빨간색으로 표시합니다)
간단히 말해서 화이트리스트는 한 번에 한 줄 / 규칙의 순차적 점검입니다.
다음 잘못된 예를 보자
# 복사하지 마십시오
@whitelist_sender_maps = (new_RE (
qr'@(?!(gmail\.com$|hotmail\.com$))'i,
qr'@(?!(aol\.com$|msn\.com$))'i
));
# 복사하지 마십시오
- 첫 번째 줄은 TRUE를 반환 하고 검사가 중지 되므로 msn.com의 모든 항목이 전달 됩니다.
- gamil.com의 모든 것은 통과합니다. 첫 번째 라인이 실패한 후 amavisd가 두 번째 라인으로 이동하면 TRUE 가 반환 됩니다.
- 목록에없는 도메인은 어떻습니까? 그들은 통과 할 것이다. 이것이 규칙의 의도입니다!
모든 발신자를 화이트리스트에 올립니다!
펄 테스트 프로그램
#! / usr / bin / perl
엄격한 사용;
# 도메인 및 하위 도메인 거부
#my $ REGinfo = '== 도메인 거부 및 하위 도메인 =='
#my $ REG = qr '[@.] (?! (gmail \ .com $ | hotmail \ .com $ | aol \ .com $))'i;
# 정확한 도메인 만
내 $ REGinfo = '== 정확한 도메인 만 ==';
내 $REG=qr'@(?!(gmail\.com$|hotmail\.com$|aol\.com$))'i;
인쇄 $ REGinfo. "\ n";
인쇄 '$ REG ='. $ REG. "\ n \ n";
내 @strTest = (
'test@hotmail.com',
'test@gmail.com',
'test@aol.com',
'test@msn.com',
'test@yahoo.com',
'test@yahoo.aol.com',
'aol.com@somethingelse.com'
);
내 $ i (0 .. $ # strTest) {
if ($ strTest [$ i] = ~ $ REG) {
print ( "패스 $ strTest [$ i] \ n");
}
다른 {
print ( "실패 $ strTest [$ i] \ n");
}
}