Procmail: 동일한 주소로 전송된 이메일을 찾으시겠습니까?

Procmail: 동일한 주소로 전송된 이메일을 찾으시겠습니까?

및 필드에 모두 동일한 주소가 포함된 procmail이메일을 검색하는 방법이 있습니까 ? 레시피에 이메일 주소를 모두 하드코딩하지 않고도 이 작업을 수행할 수 있나요?from:to:

기본적으로 나는 발신자가 자신의 주소로 메일을 보낸 다음 숨은참조는 다른 모든 사람에게 보내는 이메일을 찾으려고 노력하고 있습니다. 일반적으로 나는 그것을 사용 notmuch하고 그것에 만족하지만 여기서 달성하려는 것을 수행할 수 없습니다. 하지만 notmuch함께 일할 수 있기 procmail때문에 정말 잘 아는 사람이 procmail도움을 주어 이 일을 수행하기 위해 완전히 새로운 필터링 시스템을 배울 필요가 없게 되기를 바랐습니다.

답변1

이는 가능하지만 다소 모호한 Procmail 기능이 필요하며 물론 달성하려는 내용을 이해해야 합니다.

:0
*   ^From:[     ]*\/[^  ].*
* $ ^To:[   ]*$\MATCH
{ ... actions ... }

캡처 \/연산자는 일치하는 문자열을 특수 변수로 수집합니다 MATCH. 다음 줄에서는 헤더에서 동일한 문자열을 검색합니다 To:. $MATCH캡처된 문자열이 포함된 위치에는 $\MATCH문자열의 정규식 특수 문자가 문자 그대로 일치하도록 이스케이프된 정규식이 포함됩니다. $Procmail 변수를 정규식에 삽입하려면 레시피에 수정자가 필요합니다 .

이는 일반적인 [ ]*(공백 또는 탭, 0개 이상)을 사용하여 콜론 뒤의 공백을 건너뛴 다음 공백이 아닌 첫 번째 문자부터 시작하는 모든 것을 가져옵니다.

실제로 이는 헤더 From:To:헤더의 내용이 동일해야 함을 의미합니다. 보낸 사람이 다른 "실명"(기술적으로는 설명일 뿐임)을 입력하면 이 레시피는 일치하지 않습니다. 예를 들어,

From: Myself <[email protected]>
To: Everyone <[email protected]>

여기서는 이메일 종결자는 동일하지만 전체 필드가 ​​다릅니다. 이 시나리오에 대처해야 하는 경우 정규식을 변경하여 <이전의 첫 번째 항목과 일치하도록 할 수도 있지만 \/이는 분명히 일치해야 하는 정확한 문자열에 따라 달라집니다. 가능한 변형이 많이 있습니다.

관련 정보