notmuch
Про мою почту.
Исходно пост на вордпрессе
Сейчас notmuch снова есть, вместо exim - dma. Вместо procmail и mbsync - fdm.
- notmuch — емаксовая (и не только: https://notmuchmail.org/frontends/) почточиталка с дивным поиском, http://notmuchmail.org/.
- procmail — сортировка почты, перекидывание «локальной» в указанное место.
- mbsync,
- exim4.
Удобные способы работы с электронной почтой — наверное, не менее важно, чем удобная одежда или обувь. Так же незаметны, когда есть, и так же ужасно бесит, когда нет. И так же, как с обувью, разным людям удобно разное. Мне вот практически всегда неудобен веб-интерфейс, которым радостно пользуются многие знакомые. Мне неудобны комбайны, типа аутлука (которым когда-то довелось… даже не знаю, каков он сейчас) или thunderbird-а. Впрочем, перебраться на mutt тож как-то не получилось. Ещё я предпринимала попытки освоиться с несколькими емаксовыми почтовыми клиентами, но они не прижились совершенно. Может, мне чего не хватало, может, им. Не помню. Пыталась использовать всякие прочие. Предпоследняя попытка — sup-mail. Но сейчас я, кажется, нашла, что хотела. Notmuch + notmuch-emacs. И это в первую очередь поисковичок, умеющий метки. На движке xapian. С интерфейсом для emacs.
- Мои этак 50 тысяч писем — вообще не напрягают. Поиск по адресам, поиск по текстам, поиск по сабжам, поиск по тегам… — влёт (https://notmuchmail.org/searching/). Удаление больших количеств — не совсем влёт, но «запустила команду и чуток подождала», а не кнопочки натыкивать.
- Распознаёт дубли, умеет обращаться с ними как с одним письмом.
- Notmuch не пытается лезть в интернет сам. И это офигенно правильно, потому что интернет разный бывает. А емакс мне нужен — реагирующий. Почту я получаю mbsync(isync)-ом, отправляю через exim. В общем-то, и для написания почты используются существующие возможности emacs (собстно, message-mode), и замечательно, ибо нефиг изобретать уже изобретённые колёса.
- Notmuch позволяет мне обращаться с почтой удобно. Так, я убрала ``входящие обыкновенные неразобранные''. Аналог инбокса лично у меня — ``почта за вчера и сегодня'', сохранённый поиск по датам. Это всегда немного. ) Если мне нужно что-то более раннее — не вопрос, но глаза оно не мозолит. И вообще не возникает тоски от неразобранной почты.
- Неплохо читает html-ную почту. Не передаёт красот оформления, и хорошо — там часто уйма лишнего. Но вполне читает и отвечает. Это, кстати, было проблемой раньше — либо неудобный подход, либо только текстовая почта.
Как поставила
- Из дебианного репозитория я поставила
notmuch
(sudo aptitude install notmuch
, есличо). - при помощи
elpa
—notmuch-emacs
. Он есть и в репах дебиана, но вelpa
обновляется почаще ) - Сконвертила всё, что хранилось в
mbox
-ах вmaildir
-ы —mb2md
в дебианном репозитории тоже есть. - Убедилась, что
procmail
локальную почту тоже доставляет вmaildir
. - Запустила
notmuch setup
, ответила на вопросы:- где папка с почтой
- как меня звать
- какая почта у меня основная
- какие ещё есть
- какие теги добавлять новым письмам (у меня сейчас —
unread;inbox;new
). Это позволяет три градации «нужности».- То, что молча складывается в тег, «чтобы было» - ставлю тег, снимаю все три эти.
- То, что хочу различать прочитанное от непрочитанного, и вообще видеть, что непрочитанное есть - тег, убираю inbox и new, оставляю unread.
- То, что прям хочу видеть, что отмечается в inbox-е, приоритетное - ставлю тег, убираю только new, чтоб повторно не обрабатывать каждый раз.
- Четвёртая градация - совсем ненужное - поставить либо spam, либо deleted. Второе вычищается раз в час. Спам - теоретически в светлом будущем могу захотеть сохранять в обучательных для всяких спаморезок целях.
- какие папки и файлы игнорировать в папке с почтой (у меня — никакие)
- письма с какими тегами исключать из поисков (у меня —
spam;deleted;muted
. Последний — на случай рассылок, в которых не захочется видеть какой-то тред. Для этого жеnotmuch tag -inbox +muted -- "\$(notmuch search -/-output=threads tag:muted);
вpost-new
, о котором чуть ниже) - синхронизировать ли флаги в именах файлов с тегами (да)
- Предупредили, что под индекс может занадобиться примерно столько же, сколько под саму почту.
- Посмотрела на полученный
~/.notmuch-config
, убедилась, что он меня устраивает. - Сказала
notmuch new
в консольке. Такnotmuch
ознакомился с моей почтой. Довольно долго знакомился. Но это один раз так. - Сказала
M-x notmuch
в емаксе, и получила приветственное окошко. - Затем было и всё ещё продолжается развлечение с настройкой и доводкой тегов. Путём правки файлика
$DATABASEDIR/.notmuch/hooks/post-new
для сортировки входящей почты, и путём запуска поисков в консольке для разметки уже существующей почты. Основная разница в том, что в файлике это обычноnotmuch +something -new -inbox -- tag:new and some-other-search-terms
, а в консольке -new и tag:new не фигурируют. Пока что всей сортировки — жалких 100 строк, у людей, пишуть, куда как побольше. Вообще, про это - https://notmuchmail.org/initial_tagging/
Как у меня работает
На входящие назначается тег inbox
, далее работает хук post-new
, который разбирает «знакомые» письма по другим тегам, тег inbox
снимая.
Частично это спам, разумеется. Частично то, для чего нужно сделать назначение тегов. Частично то, что разбираю вручную. Но всё, что требует быстрого реагирования — разбирается как «вчерашне-сегодняшнее». Возня с неразобранными входящими — это «на что надо назначить теги», «какой спам мне было лень удалить сразу», «какие единичные письма и почему застряли». Где-то месяца через два использования — предприняла, было легко. А сейчас как-то всё на лету разбирается, вообще не напрягает.
Интересно видеть, сколько чего. Временами даже странно, когда понимаешь, насколько мало или много места что-то занимает в почтовом ящике и в жизни. Временами прекрасный стимул отписаться от рассылок. Тех, которых много, но которые даже не трудишься открывать…
Просматриваю, в основном, или то, что сейчас нужно по теме, или поиск «вчерашнее-сегодняшнее». В поиске по умолчанию не показываются «удалённые» письма и помеченные как спам, что есть стимул их помечать и удалять.
Для того, на что отреагировать таки надо, но слабО сразу — я не уверена, что сделаю за «вчера-сегодня», есть специальная метка todo
, вынесена в сохранённые поиски наряду с flagged
(что на мой взгляд стоит перечитать когда-нибудь).
Из дополнительного, что мне показалось нужным-полезным
- в поисках умеет регэкспы, но регэксп надо ограничивать слэшами
/регэксп/
, иначе ожидает только wildcard. Вообще,notmuch help search-terms
имеет смысл временами перечитывать, когда пишу правила. А то по образцу пары простых получается скучновато :) - Отправлять письма —
M-x notmuch-mua-send
. Привязывать кнопочки — своими силами, в меню не торчит, несколько неочевидно. - создание нового письма —
m
в любом из notmuch-евских буферов. - есть
org-notmuch
, умеет делать ссылки на notmuch-евские письма и поиски. Мне крайне удобно, потому что часть сведений по работе приходит почтой, и удобно делать ссылку из рабочего файла. (Хм, а сейчас смотрела, и как-то неинтересно. 2022-01-12, А.Б.) - аттачи смотреть —
. o
— тогда запросит, чем. Или. v
— тогда поумолчательной. - если хочется поменять внешние смотрелки для
. v
— это надо править.mailcap
в домашнем каталоге. Может быть, его для этого надо завести. Я заводила раньше и по другому поводу.
$HOME/.mailcap:/etc/mailcap:/usr/share/etc/mailcap:/usr/local/etc/mailcap
— адреса, по которым стоит его у себя высматривать.
- По
?
выводит подсказку, какие тут есть основные кнопочки. Поведение традиционное, но от этого не менее приятное. - После каждого получения почты надо снова командовать
notmuch new
. У меня на вот такоеmbsync mymail \&\& notmuch new
- алиас в.bashrc
. notmuch search --output=files tag:deleted
— получить список файлов, отмеченных тегомdeleted
notmuch search --format=text0 --output=files tag:deleted | xargs -0 --no-run-if-empty rm
илиnotmuch search --output=files tag:deleted | tr '\n' '\0' | xargs -0 -L 1 rm
— удалить такие файлы. Понятно, можно и что-то другое делать по тому же принципу. После обязательно надоnotmuch new
для регистрации изменений.notmuch search $(notmuch search --output=tags \* | sed 's/^/not tag:/;2~1s/^/and /')
- непротеженные.notmuch tag +untagged -- $(notmuch search --output=tags \* | sed 's/^/not tag:/;2~1s/^/and /')
- поставить им тег. В хук смысла не имеет, имхо. А вот при разборке ранее полученных писем может и пригодиться.
- Notmuch подсчитывает письма - без скрываемых тегов (у меня spam и deleted). Поэтому при реальном удалении ранее помеченного счётчик количества писем значения не меняет, а вот при назначении тега - да.
- Автодополнение адресов. Требует
notmuch-addrlookup
(который поставила я) или что-то похожее, см. https://notmuchmail.org/emacstips/#index13h2. Далее в настроечный файлик
(require 'notmuch-address) (setq notmuch-address-command "/usr/bin/notmuch-addrlookup")
А в custom-set-variables файла init.el у меня, кроме сохранённых поисков, завелось следующее:
'(message-confirm-send t) '(message-interactive nil) '(send-mail-function (quote sendmail-send-it))
Неиспользуемое
afew - Tagging script for notmuch mail.
The basic task of afew is to provide automatic tagging each time new mail is registered with notmuch. In a classic setup, you might call it after 'notmuch new' in an offlineimap post sync hook.
In addition to more elementary features such as adding tags based on email headers or maildir folders, handling killed threads and spam, it can do some heavy magic in order to learn how to initially tag your mails based on their content.
In move mode, afew will move mails between maildir folders according to configurable rules that can contain arbitrary notmuch queries to match against any searchable attributes.
- Домашняя страница: https://github.com/afewmail/afew
- Доки: https://afew.readthedocs.io/en/latest/
Вообще, подумываю таки оживить, потому что оно умеет сортировать по заголовкам, и какой-нить тег maybespam мог бы оказаться нелишним.
Ссылки
- https://notmuchmail.org/ — сайт notmuch
- http://notmuch.198994.n3.nabble.com/ — их рассылка форумом.
- https://notmuchmail.org/emacstips/ - про использование с emacs.
- https://github.com/mmehnert/maildir-decrypt - вариант скриптегов для расшифровки зашифрованного.
- https://www.reddit.com/r/emacs/comments/aja2ov/notmuch_thread_sort_order/ - про треды, в том числе как перейти к первому непрочитанному в треде.