동일한 주소를 가진 이메일이 포함된 필드를 검색 procmail
할 수 있는 방법(또는 다른 방법)이 있습니까 ? 레시피의 모든 이메일 주소를 하드코딩하지 않고도 수행할 수 있나요?from:
to:
기본적으로 나는 자신의 주소로 보낸 이메일의 보낸 사람을 찾은 다음 다른 사람의 이메일을 BCC하려고합니다. 일반적으로 나는 그것을 사용 notmuch
하고 만족할 것이지만 여기서 달성하려는 것을 달성하지 못합니다. notmuch
함께 일할 수 있으므로 실제로 아는 사람이 도움을 줄 수 있기를 procmail
바랍니다. procmail
따라서 이 작업을 수행하기 위해 완전히 새로운 여과 시스템을 배울 필요가 없습니다.
답변1
다소 모호한 Procmail 기능이 필요하기는 하지만 가능합니다. 그리고 물론 달성하려는 것이 무엇인지 이해해야 합니다.
:0
* ^From:[ ]*\/[^ ].*
* $ ^To:[ ]*$\MATCH
{ ... actions ... }
캡처 \/
연산자는 일치하는 문자열을 특수 변수로 수집합니다 MATCH
. 다음 줄에서는 To:
헤더에서 동일한 문자열을 검색합니다. 리터럴 일치를 위해 문자열의 정규식 특수 문자가 이스케이프된 정규식이 포함된 $MATCH
캡처된 문자열을 포함합니다 . Procmail 변수를 정규 표현식으로 삽입하려면 $\MATCH
레시피에 수정자가 필요합니다 .$
이는 일반적인 [ ]*
(공백 또는 탭, 0개 이상)을 사용하여 콜론 뒤의 공백을 건너뛴 다음 공백이 아닌 첫 번째 문자로 시작하는 모든 것을 가져옵니다.
실제로 이는 From:
헤더와 To:
헤더의 내용이 동일해야 함을 의미합니다. 보낸 사람이 다른 "실명"(기술적으로는 설명일 뿐임)을 입력하면 이 레시피는 일치하지 않습니다. 예를 들어,
From: Myself <[email protected]>
To: Everyone <[email protected]>
여기서 이메일 터미널은 동일하지만 전체 필드가 다릅니다. 이 상황을 처리해야 하는 경우 <
이전의 첫 번째 정규식과 일치하도록 정규식을 변경할 수 있지만 \/
이는 일치해야 하는 정확한 문자열에 따라 달라지며 가능한 변형이 많이 있습니다.