PROCMAIL을 사용하여 여러 수신자가있는 경우 전자 메일 복합 폴더
-
09-12-2019 - |
문제
집에서 이메일 시스템을 구축하려고하면 많은 메일 링리스트에 가입했습니다.이메일은 Fetchmail에 의해 내 로컬 컴퓨터로 가져와 Procmail이 필터링했습니다.그러나 현재 지식으로 해결할 수없는 상황이 있습니다.결과없이 솔루션을 찾기 위해 2-3 시간 동안 Googling을 겪었습니다.
내가 원하는 것은 여러 수신자가있는 이메일을 받고이 이메일을 다른 폴더로 복사하고 싶습니다.다음은 예제입니다.
Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org
.
이 이메일을 Linux-Kernel 및 Linux-Kernel-Janitors 폴더에 넣고 싶습니다.Procmail에서 어떻게 할 수 있습니까?
미리 감사드립니다!
해결책
SWITCHRC=
를 사용하여받는 사람 목록에서 PROCMAIL 루프를 만들 수 있지만 이는 오히려 해상니다.또는 처리하려는 폴더 목록이 제한되어있는 경우 각각 별도로 전달할 수 있으며 적어도 한 번 배달 한 경우 메시지를 삭제할 수 있습니다.
LASTFOLDER=
:0c:
* ^TO_linux-kernel@vger\.kernel\.org\>
linux-kernel
:0c:
* ^TO_kernel-janitors@vger\.kernel\.org\>
kernel-janitors
# ... repeat for other addresses you want to multiplex ...
# If it was delivered, LASTFOLDER will be set
:0
* LASTFOLDER ?? .
/dev/null
.
이 섹션에 도달하기 전에 추가 수신함으로 복사 한 경우 ExperiComently EnterAcodiceTag 코드를 빈 문자열로 설정하려고합니다.그렇지 않으면 필요해서는 안됩니다. 그러나 나는 그것을 예방 조치로 남겼습니다.(이 변수에는 메시지가 전달 된 최신 폴더의 이름이 포함되어 있습니다.)
다른 팁
해결책은 다음과 같습니다.
우선, 내 .procmailrc 파일에 단순히 커널 메일 링리스트 필터 조건이 포함되어 있기 때문에 IF 문이 필요합니다.그것이 다른 것보다 일치하면 다른 조건 목록이 있습니다.나는 그것이 더 세분화 될 시간에 대해 생각한다.
:0
* [To|Cc].*vger.kernel.org
LASTFOLDER=
:0Ac:
* ^[To|Cc].*linux-janitors@vger.kernel.org
| DoItSomethingWithIt
:0Ac:
* ^[To|Cc].*linux-kernel@vger.kernel.org
| DoItSomethingWithIt2
:0
* LASTFOLDER ?? .
| DoItSomethingWithIt3
.