procmail을 사용하여 "받는 사람"에 내 이름을 포함하여 이메일을 필터링합니다.

StackOverflow https://stackoverflow.com//questions/11689667

문제

procmail을 사용하여 "받는 사람" 필드에 내 이름("John Doe")이 포함되어 있지 않은 수신 메일을 "정크" 폴더로 이동하고 싶습니다.

그러나 온라인 테스트 앱에서 정규식을 철저하게 테스트하여 정규식과 일치하는지 확인했지만 다음 규칙은 아무런 효과가 없는 것 같습니다.

# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/

관심이 있는 경우 전체 procmail 규칙 파일은 다음과 같습니다.

# Filter mail using SpamAssassin
:0fw: spamassassin.lock
* < 256000
| /usr/bin/spamassassin

# Filter spam based on "Spam-Level"
:0:
* ^X-Spam-Level: \*\*
.Junk/

# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/

내 규칙이 작동하지 않는 이유는 무엇입니까?

도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

Perl 예측은 Procmail의 정규식 레퍼토리의 일부가 아니기 때문입니다.

대신 이것을 시도해 보세요.

:0
* ! ^To:.*John[  ]+Doe
.Junk/

[ ] 안의 공백은 공백과 탭이어야 합니다.그만큼 \s Perlism도 지원되지 않습니다.

필터링 기준으로 이메일 주소를 사용하는 것이 더 나을 수도 있습니다. ^TO_ 참조를 포함하는 특수 매크로:등.여전히 숨은참조를 처리할 수 없습니다.물론 귀하의 계정으로.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top