Mutt
mutt – это текстовый клиент электронной почты (MUA) с интерфейсом командной строки. mutt – это один из текущих консольных почтовых клиентов, находящихся в активной разработке, с большой толпой активной поддержки (и пользователей). Он мощный, хорошо персонализируемый, маленький и эффективный. neomutt – это очень похожее ответвление mutt, к нему применима большая часть этой статьи.
neomutt is a fork of mutt which is very similar, to which most of this article also applies.
Введение
Хотя изначально Mutt был разработан, чтобы читать почту из локального почтового ящика (например, /var/spool/mail/ ), сегодня у него есть полная поддержка каталогов Maildir, удаленного подключения к серверам POP3, и полная поддержка аккаунтов IMAP. Для полного описания того, что может делать Mutt, пожалуйста, прочитайте руководство Mutt.
Установка
Чтобы начать ваше приключение с Mutt, вам нужно просто установить его. Однако у Mutt есть много различных опций, которые включают или выключают различные его возможности. Ниже мы кратко обсудим большинство важных USE-флагов, которые вы можете захотеть включить, в зависимости от того, как вы собираетесь использовать Mutt. Заметьте, что включение большинства из них не повредит данной программе, но заставить делать ее больше, чем может захотеть опытный пользователь Mutt.
Emerge
root #
emerge --ask --verbose mail-client/mutt
USE-флаги
USE flags for mail-client/mutt A small but very powerful text-based mail client
+hcache
|
Enable header cache, one database backend needs to be enabled |
+imap
|
Add support for IMAP (Internet Mail Application Protocol) |
+lmdb
|
Enable dev-db/lmdb database backend for header caching |
+sasl
|
Add support for the Simple Authentication and Security Layer |
+smtp
|
Enable support for direct SMTP delivery |
+ssl
|
Add support for SSL/TLS connections (Secure Socket Layer / Transport Layer Security) |
autocrypt
|
Enable autocrypt.org support |
berkdb
|
Enable sys-libs/db database backend for header caching |
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
doc
|
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally |
gdbm
|
Enable sys-libs/gdbm database backend for header caching |
gnutls
|
Prefer net-libs/gnutls as SSL/TLS provider (ineffective with USE=-ssl) |
gpgme
|
Build gpgme backend to support S/MIME, PGP/MIME and traditional/inline PGP |
gsasl
|
Use GNU SASL via virtual/gsasl instead of Cyrus SASL (requires USE=sasl) |
idn
|
Enable support for Internationalized Domain Names |
kerberos
|
Add kerberos support |
mbox
|
Add support for mbox (/var/spool/mail) style mail spools |
nls
|
Add Native Language Support (using gettext - GNU locale utilities) |
pgp-classic
|
Build classic_pgp backend to support PGP/MIME and traditional/inline PGP |
pop
|
Enable support for POP3 mailboxes |
prefix
|
Defines if a Gentoo Prefix offset installation is used |
qdbm
|
Add support for the qdbm (Quick Database Manager) library |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
slang
|
Add support for the slang text display library (it's like ncurses, but different) |
smime-classic
|
Build classic_smime backend to support S/MIME |
tokyocabinet
|
Enable dev-db/tokyocabinet database backend for header caching |
vanilla
|
Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically |
IMAP
Прежде всего, для новичков, USE флаг imap
, наверное, является самым важным. Если вы его включите, ничего не сломается, поэтому если вы не уверены, какой аккаунт вы будете использовать с Mutt, просто включите его. Большинство провайдеров электронной почты, даже бесплатные, вроде GMail, сегодня используют IMAP, так как это самый удобный способ сохранять почту, к которой обращаются из нескольких клиентов в одно и то же время и/или из разных мест. Так как IMAP хранит всю почту на сервере, Mutt просто скачивает те сообщения, которые вы хотите видеть.
Header cache backends
После чтения сообщений часто бывает, что вы переходите к списку почтового ящика, чтобы посмотреть, что там. Для отображения этой информации Mutt загрузит заголовки сообщений. Когда вы часто переключаете папки или если ваши папки содержат большое количество писем, загрузка заголовков сообщений снова и снова будет занимать некоторое время. Так как это просто пустая трата, Mutt использует штуку, которая называется "кэш заголовков" (USE-флаг hcache
), чтобы хранить наиболее важные части сообщений, которые нуны ему, чтобы значительно ускорить открытие папок. Данный кэш заголовков сохраняется с помощью библиотеки базы данных, из которых поддерживаются пять: berkdb
, gdbm
, ldbm
, qdbm
и tokyocabinet
. Если вы не знаете, какая для вас лучше, выберите lmdb
, поскольку он самый быстрый для использования с Mutt. Вы можете активировать только один USE-флаг для бэкэнда базы данных hcache
. Если после этого вы переустановите Mutt с другой библиотекой базы данных, Mutt перестроит свои кэши автоматически, когда он откроет папку.
Sending mail
Хотя IMAP важен для чтения почты, для отправки почты необходим почтовый сервер. Mutt может доставлять почту, используя локальный (send)mail, но часто это не очень хорошее решение, например для ноутбуков, которые перемещаются. В Mutt есть поддержка SMTP, которая включается USE флагом smtp
USE-flag. Опять же, включив этот флаг, если вы не уверены в нем, вы не повредите вашу систему. Поддержка SMTP в Mutt просто позволяет вам отправить почту через почтовый сервер по вашему выбору, с опциональной аутетификацией, – обычно это smtp-сервер, который дал вам ваш провайдер электронной почты.
Secure protocols
Сегодня как IMAP, так и SMTP в основном передаются через защищенные каналы, поэтому если вы еще не включили ни одного из таких флагов, будет разумным включить либо USE-флаг ssl
, либо gnutls
. Оба из них добавляют безопасные варианты (imaps и smtps) к списку поддерживаемых Mutt протоколов, используя либо реализацию OpenSSL, либо GNUTLS. Если у вас нет строгого предубеждения на этот счет, просто выберите ssl
. Скорее всего, он уже есть в ваших глобальных USE флагах в любом случае. Если вы хотите аутентифицировать себя при передаче почты, также добавьте к вашим USE флагам sasl
, так как это необходимо для данного действия.
Шифрование
В настоящее время всё более и более распространёнными становятся подпись или даже шифрование сообщений. Mutt поддерживает традиционные OpenPGP и S/MIME через оболочку gpgme. Самый простой способ настроить поддержку подписанных и зашифрованных сообщений – это использование USE-флага gpgme
. Документация и опыт использования в этой области, мягко говоря, сбивают с толку, и в то время как gpgme – самый простой в настройке, он едва документирован. Когда вы активируете gpgme
, убедитесь, что также активируете этот бэкэнд в конфигурации, см. ниже.
Конфигурация
После того, как вы установили Mutt с выбранным набором USE-флагов, единственный необходимый шаг – создать файл .muttrc. Примеры muttrc-файлов можно найти во многих местах в Интернете, а также в документации по Mutt. В каталоге /usr/share/doc/mutt-<version>/samples можно найти некоторые примеры файлов muttrc из официальной поставки. Ниже показан очень маленький файл .muttrc для аккаунта с использованием протокола IMAP и доставкой почты по SMTP. Он также активирует подпись электронной почты посредством gpg с использованием бэкэнда gpgme.
Файлы
.muttrc
# Кодовая страница для отправленных сообщений
set send_charset="utf-8"
# Если для входящих сообщений не задано кодовой страницы, то, скорее всего, это windows
set assumed_charset="iso-8859-1"
# Удостоверьтесь, что Vim знает о том, что Mutt это почтовый клиент, и что будет создано UTF-8 сообщение
set editor="vim -c 'set syntax=mail ft=mail enc=utf-8'"
# Скроллинг по одной строке, а не по странице
set menu_scroll=yes
# Мы хотим смотреть некоторые MIME-типы не выходя из программы, смотри ниже (после этого листинга кода) объяснения
auto_view application/msword
auto_view application/pdf
# Шаблон по умолчанию для поиска в To, Cc и Subject
set simple_search="~f %s | ~C %s | ~s %s"
# Настройки потоков, сортировать по потокам
set sort=threads
set strict_threads=yes
# Показываем очки спама (только из SpamAssassin) при чтении сообщения
spam "X-Spam-Score: ([0-9\\.]+).*" "SA: %1"
set pager_format = " %C - %[%H:%M] %.20v, %s%* %?H? [%H] ?"
# Не показывать все заголовки, только некоторые
ignore *
unignore From To Cc Bcc Date Subject
# в таком порядке
unhdr_order *
hdr_order From: To: Cc: Bcc: Date: Subject:
# Раскрасим все цветами, для примеров раскраски смотри сайт
# http://aperiodic.net/phil/configs/mutt/colors
color normal white black
color hdrdefault green default
color quoted green default
color quoted1 yellow default
color quoted2 red default
color signature cyan default
color indicator brightyellow red
color error brightred default
color status brightwhite blue
color tree brightmagenta black
color tilde blue default
color attachment brightyellow default
color markers brightred default
color message white black
color search brightwhite magenta
color bold brightyellow default
# Если вы не любите черный прогрессбар внизу экрана,
# закомментируйте следующую строку
color progress white black
# Настройки пользователя
set realname = "Larry the cow"
set from = "larry@mail.server"
alternates "larry@mail.server|larry.the.cow@mail.server"
# Данный файл должен существовать, и в нем должна быть ваша подпись. Закомментируйте его, если вы
# не хотите использовать подпись
set signature = ~/.signature
# Алиасы (что-то вроде адресной книги)
source ~/.aliases
# Настройки соединения IMAP
set mail_check=60
set imap_keepalive=300
# Настройки аккаунта IMAP
set folder=imaps://larry@imap.mail.server/
set spoolfile=imaps://larry@imap.mail.server/
set record=imaps://larry@imap.mail.server/Sent
set postponed=imaps://larry@imap.mail.server/Drafts
# Использовать headercache для IMAP (проверьте, что это каталог для большего быстродействия!)
set header_cache=/var/tmp/.mutt
# раскомментируйте это, чтобы активировать боковую панель
#set sidebar_visible = yes
set sidebar_width = 15
set sidebar_folder_indent = yes
set sidebar_short_path = yes
# сделать обновления индикатора процесса не такими затратными, данные настройки будут обновлять его каждые 300мс
set read_inc = 1
set time_inc = 300
# только если вы скомпилировали Mutt с USE=gpgme, включите бэкэнд gpgme
set crypt_use_gpgme = yes
# вы можете установить это, чтобы скрыть вывод проверки gpg и полагаться только на флаг состояния Mutt
#set crypt_display_signature = no
# активировать подпись электронной почты по умолчанию
set pgp_autosign = yes
set pgp_sign_as = 0xXXXXXXXX # your gpg keyid here
set pgp_replyencrypt = yes
# Почтовые ящики для проверки на новую почту
mailboxes "="
mailboxes "=Lists"
# Почтовые рассылки для пользователя Gentoo (используются регулярные выражения!)
subscribe "gentoo-.*@gentoo\\.org"
# Конфигурация SMTP для отправки почты
set smtp_url=smtp://larry@mail.server/
Будет хорошей практикой разобраться со всеми настройками из примера конфигурационного файла выше. Есть гораздо больше настроек, а некоторые настройки могут не совпадать с вашими. Помните это, когда сначала вам покажется, что Mutt работает не так, как вам хочется.
Пример .muttrc, показанный выше, настраивает ваш аккаунт IMAP, использует SMTP сервер для передачи почты, сохраняет ее в кэше в /var/tmp/.mutt, читает известные алиасы адресов (думайте об этом как об адресной книге) из файла ~/.aliases и добавляет подпись из ~/.signature при создании новой почты. Для серверов IMAP может быть необходимо изменить каталоги для отправляемой, полученной и задержанной почты, так как каталоги Sent и Drafts могут находиться внутри каталога, называемого INBOX. Просто попробовав Mutt, вы без труда определите, так ли это в вашем случае.
Как только вы настроили .muttrc, вы готовы запустить Mutt, просто набрав mutt. Если вы ввели правильный URL-адрес сервера IMAP, Mutt запросит пароль, а затем загрузит все сообщения. Заметьте, что в первый раз вход в ваш почтовый ящик может занять много времени, если у вас есть много сообщений, так как кэш заголовков Mutt пока пуст. Если все получится, то вы окажетесь в вашем почтовом ящике IMAP, готовом к работе.
Навигация достаточно интуитивна, например, может читать сообщения просто нажимая Enter или пробел. Mutt достаточно похож на Vim в том плане, что он использует нажатия клавиш для выполнения большинства своих действий. Лучше всего прочитать документацию по Mutt, чтобы узнать все существующие функции (либо просто нажмите ? в Mutt), а также, чтобы узнать, какие клавиши нужно нажать, чтобы их вызвать (либо, к какой клавише вы бы хотели их привязать). Некоторые важные клавиши это m (от message) для написания нового сообщения, q для выхода, r для ответа на сообщение, s для сохранения и p для печати.
.mailcap
Одна из возможностей, которые есть в Mutt, но которой все ещё нет в сегодняшних самых продвинутых клиентов электронной почты – это возможность отображать вложения прямо в самой программе, с помощью какого-либо просмотрщика. Директива auto_view
в файле .muttrc говорит Mutt, какие вложения (согласно их типу MIME) нужно таким образом отображать. Чтобы определить, как это сделать, Mutt использует файлы mailcap, где находит, как отображать конкретные типы MIME. Обычно общесистемного файла mailcap здесь недостаточно, так что вы можете создать свой файл ~/.mailcap, и поместить туда что-либо для copiousoutput
, чтобы Mutt мог отображать их в самой программе.
В примере выше для файла .muttrc, auto_view
включен для файлов application/msword
и application/pdf
. Эти два вида файлов показывают большую полезность данной возможности, так как это означает, что заметки, присланные вам в виде файлов doc теперь полностью читаемы без необходимости сохранять вложение, и открывать его в LibreOffice. Вместо этого, текст показывается в прямо в программе чтения сообщений, если, конечно, у вас есть соответствующая запись в вашем файле ~/.mailcap.
application/msword; antiword '%s'; copiousoutput; description=Word Document;
nametemplate=%s.doc
application/pdf; pdftotext '%s' -; copiousoutput; description=PDF Document;
nametemplate=%s.pdf
Вышеприведенный пример файла .mailcap говорит Mutt, что нужно делать, чтобы "просматривать" ("view") файлы msword
и pdf
. Для первого он должен запустить программу antiword (emerge app-text/antiword
), для последнего - программу pdftotext (emerge app-text/poppler). Вы можете добавить туда программу для просмотра HTML в текстовом виде (попробуйте app-text/vilistextum), отображать vcard, либо показывать ASCII-отображения изображений во вложениях. Все, что вам нужно это определить, как вызывать программу в вашем файле .mailcap, и сказать Mutt, чтобы он попробовал отобразить результат в самой программе, с помощью директивы auto_view
.
Заключение
Mutt это очень настраиваемый консольный клиент электронной почты. Если вам понравилась концепция, то Mutt можно изменять любым способом через его конфигурационный файл. Поищите в Интернете, чтобы найти, как другие люди сделали "это", либо найдите один из многих существующих патчей, чтобы Mutt стал делать еще больше. Gentoo применяет несколько очень популярных патчей для Mutt, так что проверьте mutt -v, если вы хотите чего-то еще (вполне возможно, оно уже есть). Хотя выучить Mutt это не обязательно легко, но как только вы это сделаете, он может сделать ваше общение с почтой гораздо быстрее и эффективнее, чем остальные клиенты. Поиск примеров это очень мощная вещь, если вы знаете, как использовать правильные флаги, и знаете, как регулярные выражения помогут вам ограничить круг поиска. Наслаждайтесь программой Mutt!
See also
- Aerc — a lightweight, command-line mail user agent (MUA) written in the Go programming language.
- Neomutt — command-line mail client forked from mutt.
- Thunderbird — Mozilla's solution to the e-mail client.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Fabian Groffen (grobian)
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.