저는 IMAP 서버(Cyrus imapd)에서 이메일을 필터링하기 위해 sieve를 사용하고 있습니다. 나는 그것이 어떻게 작동하는지 기본적으로 이해하고 있으며 지금까지 예상대로 작동하는 몇 가지 간단한 필터링 스크립트를 만들었습니다. 이러한 스크립트를 서버의 사용자 메일함에 첨부하려면 먼저 를 사용하여 서버에 연결한 sieveshell
다음 그곳에서 적절한 명령을 실행합니다.
이제 처음으로 사용자의 편지함에서 일부 이메일을 복사하고 싶습니다.동일한 서버에 있는 다른 사용자의 사서함으로. 그러나 나는 이것을 달성하는 방법을 모르겠습니다. 가능합니까?
예를 들어, 이 서버에 이라는 두 개의 user1
사용자 사서함이 있고 도착하는 모든 메시지가 특정 발신자( 헤더로 식별됨) 로부터 온 경우 user2
복사하려고 한다고 가정 해 보겠습니다. 그렇다면 아마도 다음과 같은 내용을 포함하는 체 스크립트를 만들어야 할 것입니다.user1
INBOX
user2
From:
if address :is "from" "[email protected]"
{
/*
What do I need to put in here? The following does not work or is not what I want:
redirect :copy "[email protected]" <--- Probably sends message via SMTP (not desired)
fileinto :copy "user/user2/INBOX" <--- Does not work because the path is relative to the current user's mailbox
*/
}
user2
(통과된) 계정에 로드하세요 sieveshell
.
그러나 해당 스크립트의 주석에서 알 수 있듯이 액션 라인에 무엇을 넣어야 할지 모르겠습니다. 나는 많은 체 튜토리얼과 예제를 연구했지만 메시지를 복사하는 방법에 대한 힌트를 찾지 못했습니다.동일한 IMAP 서버에 있는 다른 사용자의 사서함.내가 그런 예를 찾지 못했다는 사실은 아마도 이것이 어리석은 생각이라는 것을 말해줄 것입니다. 그러나 나는 그 이유를 이해하지 못합니다.
redirect
현재 제가 본 모든 예에서는 이를 사용하여 정규화된 이메일 주소로 메시지를 전달하므로 이는 잘못된 일이라고 생각합니다 . 이는 메일을 전달하기 위해 SMTP 서버가 필요하다는 것을 의미할 수도 있지만 저는 그렇게 하고 싶지 않습니다.
또한 이 fileinto
작업은 대상 폴더가 스크립트가 연결된 사용자(사서함/계정)와 관련되어 있기 때문에 부적절한 것으로 보입니다. 이는 다른 사람에게 메시지를 전달하는 데 전혀 사용될 수 없음을 의미합니다.
redirect
가능한 작업을 나열하는 시브 RFC 섹션을 읽었지만 및 이외의 적합한 작업을 찾을 수 없어서 fileinto
지금은 막혔습니다.
실제로 메일을 가져와 IMAP 서버에 전달하기 전에 SMTP 측에서 위에 표시된 간단한 예제 문제를 해결할 수 있을 것입니다. 하지만 이 예제는 너무 간단하므로 sieve를 사용하여 동일한 서버의 다른 로컬 계정에 메시지를 복사하는 방법을 꼭 배우고 싶습니다.