오래된 것으로 표시하려면 이메일에 "notmuch"를 표시하세요.

오래된 것으로 표시하려면 이메일에 "notmuch"를 표시하세요.

로컬 maildir 받은 편지함과 동기화하고 +를 사용하여 offlineimap스팸 필터링 및 정렬을 수행한 후 메일 저장소에서 태그 메일을 사용합니다.fdmbogofilternotmuch

최근까지 저는 다음 셸 코드를 사용하여 특정 조건에 따라 메시지에 태그를 지정하고 다시 태그를 지정했습니다.

notmuch new

tr -s '\t' ' ' <<'END_BATCH' | notmuch tag --batch
-inbox +sent            -- folder:/Sent/
-inbox +archive         -- folder:/Archive/
-inbox +junk            -- folder:/Junk/
+unsorted               -- folder:/INBOX.Unsorted/
-unsorted               -- not folder:/INBOX.Unsorted/
-unread -- tag:archive
+unread -- tag:unsorted
END_BATCH

이렇게 하면 , 또는 폴더에 있는 모든 메시지에서 라벨이 제거되고 inbox세 폴더 모두에 대해 적절한 라벨로 메시지 라벨이 다시 지정됩니다. 그런 다음 메시지가 폴더(분류할 수 없는 메시지를 넣은 폴더)에 있는지 여부에 따라 메시지를 표시하거나 표시 해제합니다. 마지막으로 보관된 메시지는 다음으로 표시되지 않고, 정렬되지 않은 메시지는 다음으로 표시되지 않는지 확인했습니다.SentArchiveJunkINBOX.Unsortedbogofilterunread로 표시하세요 unread.

이것은 훌륭하게 작동합니다.

5개의 서로 다른 계정을 통해 메일을 받기 때문에 폴더 이름을 기준으로 메일에 다음과 같은 라벨을 추가하고 싶습니다 account-somename.account-othername

notmuch new

tr -s '\t' ' ' <<'END_BATCH' | notmuch tag --batch
-inbox +sent            -- folder:/Sent/
-inbox +archive         -- folder:/Archive/
-inbox +junk            -- folder:/Junk/
+unsorted               -- folder:/INBOX.Unsorted/
-unsorted               -- not folder:/INBOX.Unsorted/
-unread -- tag:archive
+unread -- tag:unsorted
+account-acc1           -- folder:/acc1/
+account-acc2           -- folder:/acc2/
+account-acc3           -- folder:/acc3/
+account-acc4           -- folder:/acc4/
+account-acc5           -- folder:/acc5/
END_BATCH

태그가 예상대로 작동하는 것 같지만 부작용은 다음과 같습니다.새 메시지는 오래된 메시지로 표시됩니다.(maildir의 new디렉토리에서 이 cur디렉토리로 이동합니다.) 이는 결국 mutt받은 편지함의 새 메시지가 감지되지 않음을 의미합니다(제가 maildir_check_cur이것을 config 에서 설정 하지 않는 한 mutt, 이는 매우 좋은 해결책이라고 생각하지 않습니다).

이런 일이 발생하는 것을 막기 위해 왜, 무엇을 할 수 있는지 모르겠습니다.

notmuch구성:

[database]
path=/home/myself/Mail/inboxes

[user]
name=myname
[email protected]
[email protected]

[new]
tags=inbox;unread

[search]

[maildir]
syncronize_flags=true

[index]
header.List=List-Id

답변1

notmuch이는 어떤 메일 파일이 어느 Maildir 하위 디렉터리에 들어가야 하는지에 대해 너무 현학적이며 offlineimap동일한 사항에 대해 너무 느슨하기 때문에 발생하는 것 같습니다 .

유틸리티 는 예상대로 offlineimap메일 메시지를 대상 Maildir의 new디렉터리로 전달하지만 파일 이름에는 :2,"이 메일 메시지에는 플래그가 없습니다."를 의미하는 파일 이름 접미사가 있습니다. 일반적으로 새 메시지 파일, 보이지 않거나 방금 보낸 메시지 파일에는 사용자의 MUA(메일 클라이언트)가 추가하는 파일 이름 접미사가 있어서는 안 됩니다.

Maildir 플래그를 동기화하도록 구성 하면 notmuch(아마도 그렇게 하기를 원할 것임) 메시지 파일에 파일 이름 :2,접미사가 있음을 알 수 있으므로 사용자가 MUA에서 메시지를 보아야 하지만 읽지 않았다고 가정합니다. 아직 ( S나중에 접미사에 쉼표가 있음). 그런 다음 메시지 파일을 해당 cur디렉터리로 이동합니다. 따라서 메일 mutt클라이언트는 이를 "오래된"(보았지만 읽지 않음)로 표시합니다.

해결책은 행동을 수정하는 것이지만 offlineimap,버그로 접수되어 2015년에 기각되었습니다..

내 해결책은 offlineimap방정식에서 그것을 제거하는 것이 었습니다. 대신에 나는 모든 이메일을 받는 데 사용합니다 fdm. 나중에 다른 IMAP 동기화 솔루션( mbsync?)을 고려할 수도 있습니다. 메일 서버에 몇 주 분량의 메일을 보관해 두는 것이 내 호스트에서 해당 메일에 액세스하는 데 좋을 것이기 때문입니다.

관련 정보