procmail을 사용하여 "받는 사람"에 내 이름을 포함하여 이메일을 필터링합니다.
-
12-12-2019 - |
문제
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_
참조를 포함하는 특수 매크로:등.여전히 숨은참조를 처리할 수 없습니다.물론 귀하의 계정으로.
제휴하지 않습니다 StackOverflow