My other email client is a daemon
NetHack при сборке с -DMAIL
и OPTIONS=mail
может уведомлять о новой почте: демон приносит свиток, при чтении запускается MAILREADER
.
Я играю в Emacs-версию и не хочу выходить из неё, поэтому настроил связку mu4e ↔ NetHack.
mu хранит письма в maildir, а NetHack ждёт mbox. Проверяем, появились ли письма за последние 5 минут, и «трогаем» файл /tmp/nh.mbox
:
import mailbox, pathlib, os
from datetime import datetime, timedelta
MAILDIR = os.path.expanduser("~/Mail/personal/INBOX")
MBOX = "/tmp/nh.mbox"
maildir = mailbox.Maildir(MAILDIR)
for msg in maildir:
if datetime.fromtimestamp(msg.get_date()) > datetime.now() - timedelta(minutes=5):
pathlib.Path(MBOX).touch()
break
maildir.close()
Читаем почту через mu4e:
emacsclient -n --eval "(progn (require 'mu4e) (mu4e-context-switch nil \"Personal\") (mu4e-search-bookmark \"maildir:/personal/INBOX AND flag:unread\"))"
emacsclient
запускает уже работающий Emacs, избегая блокировки базы mu.