대신 이메일을 사용하는 것을 고려 중입니다 mutt
. 그러나 몇 가지 요구 사항이 있습니다.
- 이메일을 오프라인으로 저장하고 싶습니다.
- 이메일을 주기적으로 폴링하는 대신(예: IMAP IDLE 사용) 로컬 컴퓨터에 즉시 푸시하고 싶습니다.
imapoffline
오프라인 저장의 경우 또는 를 사용할 수 있습니다 isync
. 내가 이해한 바로는 후자가 더 안정적이다. 그러나 요청 시 이메일을 푸시하기 위해 내가 isync에서 찾은 유일한 옵션은 다음과 같습니다.마이크로소프트 시계. 안타깝게도 이를 위해서는 원격 이메일 서버에 프로그램을 설치해야 하는데 이는 불가능합니다. mutt
오프라인 이메일 저장 및 즉시 이메일 전달을 사용할 수 있는 솔루션이 있습니까 ?
답변1
불행하게도 다른 쪽에서 제안된 두 가지 가능성은답변불완전하다. offlineimap
가장 좋은시기에는 상당히 문제가 있습니다. 예를 들어 새 메일이 도착한 후 스크립트를 자동으로 실행할 수 있는 방법은 없습니다. fetchmail
양방향 동기화가 없습니다.
대신 내가 사용한 솔루션은 다음 조합이었습니다.통지하다그리고동기화. imapnotify
새 이메일이 트리거될 때 (IDLE을 통해) 스크립트를 실행하도록 구성했습니다 .
스크립트는 mbsync "${channel}:INBOX"
메일이 있는 계정에 따라 실행됩니다. 다음으로 실행됩니다 notmuch new
. 마지막으로 아래와 같이 읽지 않은 이메일 수를 파일에 기록합니다. 이 파일의 내용은 데스크탑 환경의 패널에 표시됩니다.
mail_count_file="/home/foo/.cache/new_mail_count"
new_count=$(find ~/.mail/*/Inbox/new -type f | wc -l)
if [[ $new_count > 0 ]]; then
echo $new_count > "$mail_count_file"
else
if [[ -f "$mail_count_file" ]]; then
rm "$mail_count_file"
fi
fi
고쳐 쓰다
imapnotify(nodejs-imapnotify)는 경고/오류 없이 자주 연결이 끊어지고 새 메시지를 놓치는 경우가 많습니다.파이썬-imapnotify또한 간헐적으로 작동합니다. 하지만,고이맵 알림내 경험으로는 훌륭하게 작동합니다. 오프라인 상태가 되는 경우는 거의 없으며, 오프라인 상태가 되면(예: 네트워크 연결 끊김 및/또는 정지 주기로 인해) 아무런 소란 없이 빠르게 자체적으로 다시 시작됩니다.
답변2
클라이언트에 메시지를 즉시 "푸시"하는 유일한 방법은 메시지가 전달되자마자 서버가 푸시하는 것입니다. 이를 위해서는 필연적으로 메일 서버에 소프트웨어를 설치하고 실행해야 하므로 모든 잠재적인 솔루션이 mswatch
.
자주 폴링하는 것이 최선의 선택일 수 있습니다.
내 경험상 offlineimap
cron에서 몇 분마다 실행하거나 이와 유사한 것으로 충분합니다.
일부 imap getter는 imap IDLE 명령을 지원합니다. IDLE은 "푸시"(클라이언트가 여전히 서버에서 메일을 가져오기 때문에)는 아니지만 일반적으로 로컬 사서함에 거의 즉각적인 업데이트를 가져옵니다.
오프라인 지도지원되지만 매뉴얼에는 "IDLE 지원은 불완전하고 실험적입니다. 버그가 발생할 수 있습니다."라고 나와 있습니다.
메일 받기IDLE은 버전 5.0부터 지원됩니다.