Original:http://nullprogram.com/blog/2017/06/15

Перехід на клієнт електронної пошти Mutt

Ця стаття була перекладена на російську мову компанією Howtorecover .

Примітка. Спосіб, яким я керую електронною поштою, насправді не працює для більшості людей, тому не читайте це як рекомендацію. Це лише дискусія про те, як я вважаю за краще використовувати електронну пошту.

Майже чотири роки тому я переключився з веб-пошти на індивідуальну конфігурацію електронної пошти на основі Notmuch та Emacs . Не так багато служили як як рідний бек-енд, який забезпечував індексацію та тегування, а також інтерфейс, написаний на Emacs Lisp. Це різко покращило мою електронну пошту, і я хотів, щоб це було раніше. Мені дуже сподобалося настільки сильно керувати моїм електронним листом.

Тим не менш, я завжди псуєш речі - плівка відчуває себе набагато продуктивніше, ніж це насправді - і минулого місяця я знову винайшов мою адресу електронної пошти, на цей раз перейшовши на комбінацію Mutt , Vim , mu та tmux . Весь мій електронний інтерфейс зараз перебуває всередині терміналу, і я насолоджуюся цим ще більше. Я відчуваю, що знову "вирівняв" свої електронні звички.

На серверній стороні я також переключився з Exim на Postfix і procmail, зробивши конфігурацію сервера набагато простішою. Включаючи SpamAssassin, до конфігурації Debian за умовчанням додано лише три рядки. Вона залишає набагато менше місця для помилок, і я можу відновити його з нуля з невеликими труднощами, якщо виникла надзвичайна ситуація. Моя попередня настройка вимагала досить великої конфігурації системи, така як покладання на incron для сортування вхідної пошти, зокрема спаму, але procmail тепер робить цю роботу більш чистою.

До стабільності

Протягом багатьох років я став менш терплячим, коли мова йде про боротьбу з порушеннями програмного забезпечення, і я став більш консервативним щодо стабільності системи. Постійне оновлення моїх конфігурацій та звичок до останніх змін програмного забезпечення було цікавим завданням у моїй кар'єрі, але сьогодні набагато краще використовується мій час. Debian Stable, моя найкраща операційна система, працює набагато кращими темпами для мене.

Слідуючи цим змінюючим налаштуванням, одна з найбільших мотивацій для моєї останньої зміни електронної пошти полягала в тому, щоб налаштувати мою електронну пошту більш надійною та стабільною. До цього часу електронна пошта була щільно прив'язана до Emacs, з нанесенням конфігурації безпосередньо з MELPA , витягнувши версію краю для кожного кешування , яку я використовую. Розбійні зміни надходять в несподівані часи, а час від часу поточна версія пакунка тимчасово не працює. Зазвичай це відбувається тому, що розробник підштовхнув погану відповідальність до останньої версії MELPA, і тому пакет розбитий на кілька годин або днів. Я сам винен у цьому . MELPA Stable призначений для вирішення цих проблем, але, схоже, він розбивається частіше, ніж звичайно, на MELPA. Наприклад, на момент написання цієї статті, Evil не можна встановлювати через MELPA Stable через невстановлену залежність.

Прив'язувати щось настільки важливе, як електронна пошта до цієї машини Рубе Голдберґ зробила мене нервовою. Доступ до мого електронного листа залежить від ряду незалежних систем різного рівня стабільності, які в основному працюють правильно. Мій перехід до Mutt скоротив це лише до пари дуже стабільних систем.

format=flowed

Я довго вважав, що електронна пошта HTML - це мерзенність, яку ніколи не можна було винайняти. Текст є ідеальним форматом для електронної пошти, і існує безліч специфікацій, які дозволяють працювати в різних системах. Одним з таких стандартів є RFC 3676 , розмовний назву format = flowed або просто f = f.

Повідомлення, закодовані за допомогою f = f, дозволяють поштовим клієнтам безпечно перекладати абзаци, щоб добре відповідати дисплею користувача, незалежно від того, який дисплей буде тоншим або ширшим, ніж оригінальне повідомлення відправника. Він також повністю сумісний з поштовими клієнтами, які не розуміють format = flowed, який відображатиме повідомлення, оскільки відправник спочатку його загорнув.

Суть f = f полягає в тому, що повідомлення можуть мати як "м'які", так і "жорсткі" розриви рядків. Якщо рядок закінчується простором, то це м'який перерва рядка. Поштовий клієнт може безпечно перекривати лінії, розділені м'якою розбитою лінією. Без кінцевого простору це переривання жорсткої лінії, що забороняє протікати з наступним рядком. Останній рядок абзацу закінчується жорстким перервою рядка. Він також використовується для тексту, який не повинен перефраховувати, наприклад, зразки коду.

Я проілюструю, використовуючи символ підкреслення замість простору, щоб ви могли його побачити:

This is a message in the format=flowed style, allowing_
mail clients to flow this message nicely in displays of_
different widths.

> This is an example of a quote block in a message,_
> which is supported by the format=flowed specification.
>> It also supports nested quote blocks, which means_
>> this paragraph won't flow into the previous.

RFC охоплює речі, які потребують спеціальних правил "заповнення простору", але при редагуванні текстового повідомлення в редакторі потрібно лише думати про м'які та жорсткі переривання рядків. У моєму випадку, Мутт піклується про решту деталей.

На жаль, Emacs не має належної підтримки для f = f , хоча я впевнений, що невеликий режим може бути написаний, щоб він працював добре. З іншого боку, Vim відіграє все більшу роль у моєму повсякденному редагуванні та має відмінну вбудовану підтримку для f = f. Оскільки зараз я використовую Vim для складання всіх моїх електронних листів, я отримую його безкоштовно.

По-перше, я розповідаю Mutt, що я хочу використовувати f = f у моєму .muttrc :

 set text_flowed 

Тоді в Vim я додаю прапор w для formatoptions , що говорить, що він повинен обертати абзаци за допомогою м'яких переривань рядка.

 set fo+=w 

Якщо я хочу перевірити моє f = f форматування, я тимчасово вмикаю параметр list , який відображає $ для всіх рядків нового рядка.

 set list 

Хоча мало хто помітить різницю, я почуваюсь трохи погано, бо не використовую f = f всі ці роки! Кілька людей, можливо, пережили деякі некрасиві, не течучі електронні листи від мене. Моє єдине співчуття полягає в тому, що принаймні, це не HTML.

Однак це не всі троянди. Коли я відповідаю на повідомлення, Mutt не вставляє цитований текст у f = f у мою відповідь, тому я повинен масажувати його в f = f сам. Також, так само як GitHub не підтримує Markdown у відповіді електронної пошти, він також не підтримує f = f. Коли я відповідаю на випуски по електронній пошті, GitHub не зможе добре перезаписати моє ретельно зібране f = f повідомлення, без потреби робити відповідь електронною поштою нижчим варіантом.

Особливості непотрібні

Однією з причин, чому я не вибрав цю конкретну угоду електронною поштою чотири роки тому, була те, що підтримка PGP була однією з моїх головних вимог. Mutt має суцільну підтримку PGP, але, якщо встановити Maildir (тобто не IMAP), мені доведеться використовувати ключ на сервері, що не було питання. Оскільки я більше не піклуюсь про PGP , мої вимоги до електронної пошти більш розслаблені.

Протягом багатьох років не дуже вживається система позначення Notmuch. Я використовував лише два теги: "непрочитане" та "вхідні" (наприклад, читайте, але все одно потребує уваги). В іншому випадку я б використав потужний пошук Notmuch, щоб знайти те, що хотів. Мені все-таки потрібно було стежити за тегами, які я використовував, тому індекс Notmuch, майже такий самий, як і самі повідомлення електронної пошти, став частиною моєї резервної копії пошти.

Сам формат Maildir підтримує кілька прапорів: пройшов (P), відповів (R), побачив (S), перевалив (T), чернетку (D) і позначив (F). Вони зберігаються в імені файлу повідомлення. У моїй новій конфігурації тег "побаченого" (навпаки) займає місце "непрочитаного" тегу Notmuch. Тег "flagged" містять тег "inbox". Зазвичай в Mutt ви використовуєте поштові скриньки - тобто підкаталоги Maildir - для щось подібне, але я віддаю перевагу всій моїй пошті сісти в одне велике відро. Шукати, не сортуйте.

Оскільки два прапорці є частиною назви файлу, мені більше не потрібно включати в резервну копію базу даних тегів (тобто весь індекс Notmuch), а мої резервні копії пошти значно менші. Я міг би продовжувати використовувати Notmuch для пошуку, але я оселився на mu замість нього. Коли я виконую пошук, му записує результати на тимчасове Майлір, використовуючи символічні посилання, які я відвідую з Мутт. Індекс mu є тимчасовим і не потребує резервного копіювання.

Му також керує моїм псевдонімом списку контактів. Він може створювати файл псевдонімів у форматі Mutt за вмістом мого Maildir:

 mu cfind --format=mutt-alias > aliases 

Було дуже приємно, коли всі мої електронні листи стоять як ніщо інше, як велика купа файлів, як це. Я почав писати невеликі скрипти для збирання даних з нього теж.

Файли конфігурації

Як і у всіх моїх особистих файлах конфігурації, ви можете побачити мою .muttrc онлайн . Перші кілька тижнів я змінював цей файл щогодини, але тепер я отримав його в основному так, як я хочу.