Procmail: 같은 주소에서 같은 주소로 보낸 이메일을 찾으시겠습니까?

Procmail: 같은 주소에서 같은 주소로 보낸 이메일을 찾으시겠습니까?

동일한 주소를 가진 이메일이 포함된 필드를 검색 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]>

여기서 이메일 터미널은 동일하지만 전체 필드가 ​​다릅니다. 이 상황을 처리해야 하는 경우 <이전의 첫 번째 정규식과 일치하도록 정규식을 변경할 수 있지만 \/이는 일치해야 하는 정확한 문자열에 따라 달라지며 가능한 변형이 많이 있습니다.

관련 정보