Настройка Mutt для чайника
Если же о достоинствах mutt говорить кратко, лучше всего процетировать разработчиков: «Mutt is a small but very powerful text-based mail client for Unix operating systems».
Эта статья предназначена для новичков, поэтому я буду рассматривать настройку mutt довольно поверхностно, станавливаясь лишь на тех моментах, которые точно будут полезны при первом знакомстве с mutt.
Установка
Mutt это cвободно-распространяемая программа, которая портирована на множесто ОС, поэтому с компиляцией из исходных текстов, которые можно взять здесь http://www.mutt.org/download.html, или с установкой из прекомпилированных пакетов проблем возникнуть не должно.
Например, с CD-ROM’а FreeBSD, mutt, соответствующей версии, можно установить как пакет:
su && mount /cdrom && pkg_add /cdrom/packages/mail/mutt/mutt-1.4.1i.tar.gz
или скомпилировать из исходных текстов через систему портов:
$ su && cd /usr/ports/mail/mutt && make install && make clean && exit
Сразу после установки можно убедиться, что mutt вполне работоспособен даже с конфигурацией по-умочанию. Для этого выполним команду:
$ mutt
На экране должен появиться черно-белый интерфейс mutt:
Настройка
Читая man mutt видим, что mutt имеет два глобальных конфигурационных файла, /etc/Muttrc и /etc/mailcap. Первый файл как раз и является основным конфигурационным файлом mutt. Во FreeBSD он нашелся, что вполне логично, в каталоге /usr/local/etc. Второй, который вообще нигде не обнаружился, должен содержать описания реакций mutt на нетекстовые типы MIME в теле писльма.
Поскольку в разных операционных системах файлы конфигурации могут находится в различных местах файловой системы, разбираться в деталях вопроса их точного местонахождения для каждой ОС мы не будем. Сами глобальные настройки мы тоже оставим впокое поскольку конфигурация почтового клиента вещь индивидуальная для каждого пользователя. Поэтому сразу перейдем к практической части.
Для того, чтобы настроить mutt для своих нужд, пользователю достаточно в своем домашнем каталоге создать два файла: .muttrc и .mailcap, которые в полной мере заменят ему неуловимые глобальные файлы конфигурации. Mutt поставляется с примерами таких конфигураций, во FreeBSD у меня эти файлы во время установки попали в каталог /usr/local/share/examples/mutt. За основу для творчества возьмем sample.muttrc и sample.mailcap из этого каталога. Для этого, находясь в своей домашней директории выполняем:
$ cp /usr/local/share/examples/mutt/sample.mailcap ./.mailcap $ cp /usr/local/share/examples/mutt/sample.muttrc ./.muttrc
Поскольку большинство параметров .muttrc достаточно прозрачны и хорошо прокомментированы в самом конфигурационном файле, вы их сами смело измените по своему усмотрению, а я пока оставлю почти все как есть, ограничившись лишь минимальными изменениями:
set arrow_cursor # используем "->" вместо того, чтобы выделять всю строку set attribution="On %d, %n wrote:" # при ответе на письмо пишем эту строчку в начале цитаты set charset="koi8-r" # кодировка терминала set copy=yes # всегда сохранять копии исходящей почты set delete=yes # выбрасывать "удаленные" письма set edit_headers # редактирование заголовков при создании письма set editor="vim" # редактор set help # показываем помощь set include # в ответное письмо всегда включаем исходное set mail_check=5 # как часто проверяем новую почту set mbox=+mbox # здесь сохраняем прочитанную почту set pager_index_lines=6 # количество строк показываемых в пэйджере set record=+outbox # сюда по-умолчанию сохраняем исходящие сообщения set reply_to # Если есть reply-to используем set reverse_name # Используем наш адрес так, как он указан # в сообщении, на которое отвечаем set nosave_empty # удаляем файл, если в нем не осталось сообщений set sort=threads # метод сортировки set sort_browser=reverse-date # сортировка файлов в браузере каталогов set spoolfile='/var/mail/zakharov' # файл, который проверяем на наличие новой почты, (почтовый ящик МТА) set tilde # рисуем ~ чтобы указать пустые строки set nouse_domain # не дописываем домен # set use_mailcap=yes # всегда используем значения из mailcap. Мой mutt отказался # использовать эту переменную. На всякий случай закомментировали ее. set pgp_verify_sig=no # не проверяем сигнатуры PGP set visual=vim # редактор, вызываемый по ~v
Цвета, сочетания клавиш, описания своих заголовков и т.д. можно менять по вкусу, я же оставлю их без изменения.
# Укажем порядок представления заголовков писем: unhdr_order * # сбросим предыдущие установки hdr_order date from subject to cc # укажем порядок следования заголовков
Далее закомментируем сортировщик входящей почты по файлам, кучу лишних почтовых ящиков и списков рассылок, на которые автор примера подписан:
# save-hook ^judge +diplomacy # mailboxes ! +mutt-dev +mutt-users +open-pgp +wmaker +hurricane +vim +ietf \ # +drums # lists mutt-dev mutt-users
Конфигурационный файл mutt может составляться из нескольких других, но поскольку мы делаем простую конфигурацию, постараемся уместить все только в один файл и, следовательно, убираем из файла ссылки на другие файлы:
# source ~/.muttrc-local
В заключении описания файла .muttrc хочу обратить внимание, на строку set charset=»koi8-r». Наличие правильной кодировки в этой строке, гарантирует вам отсутствие проблем при чтении русских писем.
На этом примитивную настройку можно считать законченной. Уже сейчас можно читать «русские» письма, включилась поддержка цвета, это особенно удобно если при составлении писем вы используете редактор с подсветкой синтаксиса, например указали set editor=»vim» или соответствующим образом выставлены переменные окружения EDITOR или VISUAL.
Однако почти сразу обнаруживаются и не слишком приятные моменты. Оказывается, плохо читаются так называемые html-письма, еще хуже обстоит дело с вложениями в виде файлов от офисных продуктов Microsoft. В этом случае, можно пойти двумя путями, принципиально не читать такие письма или соответствующим образом настроить .mailcap.
.mailcap
Формат файла .mailcap прост: слева MIME, справа команды. Например, для того чтобы решить проблему с просмотром html-вложений можно настрои ть вызов lynx’a. Для этого воспользуемся следующей записью в файле .mailcap:
text/html; lynx -force_html %s; needsterminal;
Если у вас определены несколько дествий для одного и того же MIME, то выполняться будет первое:
text/html; lynx -force_html %s; needsterminal; text/html; netscape -remote openURL\(%s\)
Кроме того, для одного и того же типа файлов в письмах могут быть разные MIME. Тогда в .mailcap для всех этих MIME приходится использовать одинаковые описания действий. Например, поскольку у нас стояла задача научить mutt просматривать вложения в виде файлов MS Word и MS Excel, то можно в .mailcap написать следующее:
application/msword; antiword -m koi8-r.txt %s; copiousoutput application/vnd.msword; antiword -m koi8-r.txt %s; copiousoutput application/excel; xls2csv %s; | sed 's/,/ /g'; copiousoutput application/msexcel; xls2csv %s; | sed 's/,/ /g'; copiousoutput application/ms-Excel; xls2csv %s | sed 's/,/ /g'; copiousoutput application/vnd.ms-excel; xls2csv %s | sed 's/,/ /g'; copiousoutput application/x-excel; xls2csv %s | sed 's/,/ /g'; copiousoutput
antiword (http://www.winfield.demon.nl/) может быть установлен из портов или скомпилирован из исходных текстов. xls2csv входит в состав дистрибутива catdoc (http://www.45.free.net/~vitus/ice/catdoc/) который тоже может быть взят из портов, пакетов, или скомпилирован самостоятельно.
Заключение
Мы рассмотрели самые азы настройки mutt, которые, между тем, позволят сразу приступить к почти полноценной работе с электронной почтой. Однако, очень многое из возможностей mutt осталось за пределами рассмотрения:
- Получение почты по POP3
- Сортировка почты по файлам
- PGP
- Адресная книга
- и т.д.
Все эти возможности без особых проблем могут быть реализованы, поскольку на сайте mutt даны хорошие описания и приведено множество примеров.
Установка и настройка почтового клиента mutt на Linux и FreeBSD

Обновлено: 29.03.2020 Опубликовано: 26.06.2017
Тематические термины: mutt, POP3, IMAP.
Установка
yum install mutt
apt-get install mutt
pkg install mutt
Настройка клиента
Рассмотрим принцип настройки клиента Mutt для работы по IMAP и POP3.
IMAP + SMTP
Открываем конфигурационный файл:
И приводим его к следующему виду:
set from = master@dmosk.ru
set imap_user = master@dmosk.ru
set imap_pass = password
set smtp_pass = password
set realname = «Дмитрий Моск»
set smtp_url = smtp://smtp.dmosk.ru:465/
set folder = imaps://imap.dmosk.ru:993
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
set use_from = yes
set editor=’nano’
set sort = reverse-threads
set sort_aux = last-date-received
set fast_reply=yes
set include=yes
set forward_quote=yes
set delete=yes
set imap_keepalive = 900
set copy = no
set move = no
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set certificate_file = ~/.mutt/certificates
set ssl_starttls = yes
set ssl_force_tls = yes
set smtp_authenticators = ‘login’
- master@dmosk.ru — адрес электронной почты; Используем для поля from и в качестве логина.
- master — имя учетной записи;
- password — пароль;
- Дмитрий Моск — отображаемое имя;
- smtp.dmosk.ru — SMTP-сервер; В данном примере мы подключаемся к серверу по SSL-порту 465. Также могут быть варианты 587 и 25.
- imap.dmosk.ru — сервер IMAP. Подключение выполняем по SSL-порту 993. Также можно использовать порт 143.
Для проверки вводим команду:
При запросе подтвердить принятие сертификата, нажимаем a.
POP3 + SMTP
Открываем конфигурационный файл:
И приводим его к следующему виду:
set from = master@dmosk.ru
set smtp_pass = password
set realname = «Дмитрий Моск»
set smtp_url = smtp://smtp.mail.ru:465/
set pop_user = master@dmosk.ru
set pop_pass = password
set pop_host = pops://pop.dmosk.ru:995/
set pop_reconnect = yes
set pop_checkinterval = 1
set pop_delete = no
set mbox_type = mbox
set folder = ~/mail
set mbox = +Inbox
set spoolfile= +Inbox
set use_from = yes
set editor=’nano’
set sort = reverse-threads
set sort_aux = last-date-received
set fast_reply=yes
set include=yes
set forward_quote=yes
set delete=yes
set imap_keepalive = 900
set copy = no
set move = no
set header_cache = ~/.mutt/cache/headers
set message_cachedir = ~/.mutt/cache/bodies
set certificate_file = ~/.mutt/certificates
set ssl_starttls = yes
set ssl_force_tls = yes
set smtp_authenticators = ‘login’
* где необходимо обратить внимание на следующие опции:
- master@dmosk.ru — адрес электронной почты; Используем для поля from и в качестве логина.
- master — имя учетной записи;
- password — пароль;
- Дмитрий Моск — отображаемое имя;
- smtp.dmosk.ru — SMTP-сервер; В данном примере мы подключаемся к серверу по SSL-порту 465. Также могут быть варианты 587 и 25.
- imap.dmosk.ru — сервер IMAP. Подключение выполняем по SSL-порту 993. Также можно использовать порт 143.
Для проверки вводим команду:
При запросе подтвердить принятие сертификата, нажимаем a.
Примеры настройки для разных почтовых систем
Яндекс
По умолчанию, доступ на Яндекс из почтовых клиентов закрыт. Необходимо зайти на почту в браузере, кликнуть по значку шестеренки — Все настройки — Почтовые программы — Включить «С сервера imap.yandex.ru по протоколу IMAP». Подробнее в инструкции Настройка почты GMAIL и Яндекс для подключения по IMAP или POP3.
Далее создаем файл с настройкой mutt:
set realname = «Дмитрий Моск»
set from = username@yandex.ru
set use_from = yes
set imap_user = username@yandex.ru
set imap_pass = password
set smtp_url = smtp://smtp.yandex.ru:465/
set smtp_pass = password
set smtp_authenticators = ‘login’
set ssl_starttls = yes
set ssl_force_tls = yes
set folder = imaps://imap.yandex.ru:993
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
set record = =Отправленные
@Mail.ru
set realname = «Дмитрий Моск»
set from = username@mail.ru
set use_from = yes
set imap_user = username@mail.ru
set imap_pass = password
set smtp_url = smtp://smtp.mail.ru:465/
set smtp_pass = password
set smtp_authenticators = ‘login’
set ssl_starttls = yes
set ssl_force_tls = yes
set folder = imaps://imap.mail.ru:993
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
set record = =Отправленные
GMAIL
Как в случае с Яндексом, в GMAIL также необходимо включить поддержку imap. Для этого заходим в настройки почты (кликаем по значку шестеренки) — Настройки — Пересылка и POP/IMAP — Включить IMAP.
На этом не все — Google требует безопасную аутентификацию OAuth2. Чтобы у нас заработал Mutt, необходимо разрешить подключение с устаревших приложений. Для этого заходим в настройки общего аккаунта Google — Безопасность — прокручиваем до «Ненадежные приложения, у которых есть доступ к аккаунту» — кликаем по Открыть доступ (не рекомендуется) — меняем положение переключателя «Небезопасные приложения заблокированы» на положение «включено».
Подробнее о включении IMAP и POP3 для почты от Google читайте в инструкции Настройка почты GMAIL и Яндекс для подключения по IMAP или POP3.
set realname = «Дмитрий Моск»
set from = username@gmail.com
set use_from = yes
set imap_user = username@gmail.com
set imap_pass = password
set smtp_url = smtp://smtp.gmail.com:465/
set smtp_pass = password
set smtp_authenticators = ‘login’
set ssl_starttls = yes
set ssl_force_tls = yes
set folder = imaps://imap.gmail.com:993
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
set record = =Отправленные
Отправка почты из консоли
Для быстрой отправки почты из командной строки можно воспользоваться Mutt. Для этого используем приложение со следующим синтаксисом:
echo «Текст сообщения» | mutt -s «Тема» [дополнительные опции] —
echo «Test mail» | mutt -s «Mutt subject» — master@dmosk.ru
* в данном примере мы отправим письмо на электронный адрес master@dmosk.ru с темой Mutt subject и содержимым Test mail.
Mail/Mutt
Mutt — мощный консольный клиент почты. Он может практически все, что и другие почтовики с графикой, но отличается меньшим потреблением ресурсов компьютера, и, так как является консольным, с успехом работает через фреймбуфер. Это позволяет использовать его на машинах без Х-сервера, со слабыми видеокартами или по сети, экономя трафик и позволяя игнорировать слабость канала.
Настройка
mutt использует как опции командной строки, так и конфигурационные файлы. Опции используются для отладки, однако чаще применяются в пакетном режиме для создания автоматических писем:
echo "Внимание! Сервер 8 имеет температуру, близкую к критической!! \ Загрузка системы 100%. Запущен внеплановый бэкап. По завершении сервер \ будет выключен, если температура не понизится. Порт для входа через ssh на \ ближайшие 10 минут установлен в 954. " | mutt -s "Alarm! server 8 critical \ temperature!!" -b archive@firma.domain -c admin888@gmail.com \ -a /var/log/sensors/sensors.log -- admin@firma.domain
Здесь -s — тема письма; -b — адрес для скрытой копии; -c — адрес для копии; -a — вложение в письмо; — — конец списка опций; admin@firma.domain — основной адрес; команда echo по конвейеру | передает тело письма. Естественно, в реальных ситуациях вместо большинства параметров используются переменные, подставляющие адресатов, меняющие тему и текст под нужную ситуацию.
Для настройки mutt требуется править файлы в ~/.mutt . Ранее все настройки находились в одном файле .muttrc, теперь для каждого вида настроек (alias, set, bind, folder и т.д.) есть свои файлы. Однако файл muttrc остался, теперь в нем находятся не принадлежащие к прочим категориям настройки. (Если вы импортируете готовые настройки, скопируйте файл .muttrc вместо текущего, а после правки к своим предпочтениям разнесите по разделам.)
Здесь приведены краткие сведения, более подробно следует смотреть man muttrc (на рус.), /usr/share/doc/mutt*/index.html (на англ.), официальная wiki (на англ.).
alias
alias community «ALT Linux general diskussion list» alias stalker «Vova Petrov»
Используется вместо адресной книги, для каждого адресата или списка рассылки можно создать свой псевдоним, при вводе которого в поле To: при создании письма, в поле адресата автоматически подставится реальное имя и адрес. Формат:
alias псевдоним «реальное имя»
Создать псевдоним можно из самого mutt , нажав во время чтения письма a (появится внизу экрана).
bind
bind pager previous-line bind pager next-line bind alias x exit bind attach x exit bind browser x exit
Первые две строки переназначают клавиши в встроенном просмотрщике; следующие три устанавливают клавишу x для выхода из меню подстановки псевдонимов, просмотра вложений, выбора вложений. Формат:
bind карта ключ функция. Примеры параметров в /usr/share/doc/mutt*/configuration.html#bind .
charset
charset-hook windows-1251 cp1251 charset-hook koi8r koi8-r
Полезно для приема почты от разных отступающих от стандарта почтовиков, которые указывают кодировку в произвольном формате. Формат: charset-hook псевдоним_ака_неправильное_название правильная_кодировка
color
color attachment blue default color header green default "^user-agent" color header brightblue default "^to: " color signature magenta default
Устанавливает цветовую гамму для просмотра и прочих действий с письмами. Первая строка — цвет вложений; вторая и третья — цвет определенных заголовков; последняя — цвет подписи. Формат:
color привязка цвет_переднего_плана цвет_фона [регулярное выражение]
folder
folder ~/Mail mailboxes =mailru =gmail =default folder-hook mailru set from='stalker999@mail.ru'
Устанавливает настройки для папок с почтой. Первая указывает папку на компьютере, где хранятся почтовые папки (строго говоря, это не папки, а файлы, которые содержат письма в определенном формате); вторая определяет локальные папки, которые надо отслеживать на предмет новой почты; третья предписывает при входе в папку mailru устанавливать отправителем stalker999@mail.ru. Формат третьей команды:
folder-hook [!] регулярное_выражение_имя _папки команда [; команда]
pgp
set pgp_autosign set pgp_replysign set pgp_import_command="gpg -q --import -q %f"
Устанавливает настройки шифрования/подписывания писем. Формат — см set
header
hdr_order date from to cc bcc subject ignore * unignore Date From Subject To Cc Bcc my_hdr X-PGP-Version: "1.4.13"
Описывает операции с заголовками писем. Первая строка описывает порядок следования заголовков при чтении/написании письма. Вторая и третья указывают показывать только определенные и скрывать все остальные. Четвертая определяет формат для своего заголовка, например, сообщает некоторую информацию о используемой программе либо добавляет другой адрес в поле Reply-to:. Формат нагляден.
muttrc
Содержит все команды, не относящиеся ни к какой из прочих категорий. Так как этот файл единственный, который читает программа при запуске, содержит директиву source, загружающую остальные файлы. Пример:
source ~/.mutt/set
set
Основная команда, изменяющая подавляющее большинство настроек. Устанавливаемые значения (в зависимости от опции):
- string — строка (если есть пробелы, заключается в кавычки)
- boolean — yes/no (включено/выключено), есть состояние «не установлена»
- quadoption — предыдущая с добавочными значениями «предлагать да/предлагать нет» (yes/no значения применяются сразу, при установке ask-yes/ask-no предлагается подтвердить умолчание/изменить параметр для этого раза)
- number — целое положительное число.
set mail_check=10 set pop_delete=no set pop_reconnect=ask_yes set spoolfile="=default" set editor="vi -c 'set ft=mail tw=74' '+/^$'"
Первая строка устанавливает таймаут проверки новых сообщений в почтовой папке (не на сервере); вторая указывает не удалять почту на POP-сервере при получении в локальный ящик; третья предписывает при таймауте POP-сессии не соединяться заново,а ожидать подтверждения от пользователя, предлагая по умолчанию вариант «да»; четвертая устанавливает ящик, который будет показываться при запуске программы (знак = в начале названия означает локальный ящик в локальной папке); пятая — устанавливает редактором писем внешнюю программу vi с передачей ей некоторых параметров. Формат:
set параметр=значение
Использование
mutt имеет низкий порог вхождения, основные команды могут показываться в строке подсказки, кроме того, из любого места (кроме внешнего редактора, конечно) можно комбинацией клавиш ? вызвать контекстную справку по доступным для данного места командам. Управление осуществляется только клавиатурой, английской раскладкой, заглавные и строчные буквы отличаются, поддерживаются комбинации вида «нажать Esc, отпустить, нажать m» — замена Meta-клавиши, уже не присутствующей на современных клавиатурах, а также макросы — последовательность из команд, запускаемых одной/несколькими последовательно нажатыми клавишами. Команды, которые могут потребоваться новичкам:
- Enter — прочитать сообщение либо подтвердить команду;
- Tab — следующее новое сообщение, при отсутствии — следующее непрочитанное;
- L (Shift+l) — ответить в список рассылки;
- ^D (Control+d) — удалить ВСЮ просматриваемую дискуссию;
- ^U (Control+u) — отменить удаление (так как на сообщение, помеченное к удалению, mutt не переходит, «перепрыгивает» его, следует перейти к ближайшему вышестоящему и серией нажатий u или ^U восстановить нужное);
- % (Shift+5) — запретить/разрешить изменения почтового ящика (может быть полезно, если вы отметили к удалению не те письма, которые хотели, и не можете восстановить статус-кво);
- m — создать новое сообщение;
- c — перейти в папку (подставляется имя папки с новой почтой, если есть);
- r — ответить отправителю подсвеченного/читаемого письма;
- d — удалить подсвеченное/читаемое письмо;
- u — восстановить удаленное (смотри примечание к ^U);
- G — получить новую почту;
- q — выход
Дополнительная функциональность
Все же mutt нельзя считать самодостаточной почтовой программой, некоторая функциональность в нем отсутствует, другая ограничена. Благодаря тому, что его создатели придерживаются общепринятых стандартов, возможно расширить его возможности путем подключения сторонних программ. В таблице приведены некоторые доппрограммы, которые можно подключить к mutt :
| Название | Функции | Ссылки |
|---|---|---|
| abook | Полноценная адресная книга | developer page (eng) |
| fetchmail | Позволяет получать почту с нескольких аккаунтов | official page (eng) |
| procmail | Рассортировывает почту по ящикам | official page (eng) |
| formail | Удаляет дубликаты писем | unofficial page (?) |
| bmf | Подключает байесовский фильтр спама | developer page (eng) |
| msmtp | Поддерживает расширенную отправку почты | developer page (eng) |
Записки программиста
Настройка консольного e-mail клиента Mutt за пять минут
21 сентября 2016
Мотивация пользоваться вместо обычных почтовых клиентов, таких, как Thunderbird, или, скажем, Claws Mail, консольным почтовым клиентом Mutt сродни мотивации пользоваться irssi вместо HexChat. Консольные приложения, как правило, намного проще своих GUI-аналогов, а значит не так сильно жрут батарею и более безопасны. Также они управляются исключительно при помощи клавиатуры, могут быть запущены на сервере в screen / tmux, и вот это все. К сожалению, конкретно Mutt совершенно незаслуженно пользуется репутацией программы, очень сложной в настройке. Сегодня мы убедимся, что в действительности настройка Mutt не сильно отличается от настройки любого другого почтового клиента.
На момент написания этих строк в качестве основной системы я использую FreeBSD, поэтому у меня установка необходимых пакетов выглядит так:
sudo pkg install mutt msmtp
В дополнение к пакету mutt нужен еще и msmtp по той причине, что сам Mutt является только MUA, а не MTA. Другими словами, непосредственно для отправки писем Mutt использует сторонние программы. Не переживайте, это не так страшно, как может показаться.
Дополнение: Начиная с версии 1.5 стало возможным использовать smtp напрямую, без сторонних MTA. Для этого Mutt должен быть собран с соответствующими опциями. В зависимости от вашей системы / дистрибутива эти условия могут выполняться или не выполняться, поэтому в этой статье описывается способ, работающий всегда.
Первым делом указываем параметры подключения к SMTP. В файле ~/.msmtprc пишем что-то вроде:
account afiskon@example.ru
host mail.example.ru
port 587
from afiskon@example.ru
tls on
tls_starttls on
# tls_trust_file /etc/ssl/cert.pem
tls_trust_file /usr/local/etc/ssl/cert.pem
auth on
user afiskon@example.ru
password PASSWORD
Адрес сервера, имя пользователя и пароль, разумеется, нужно заменить на свои. Кроме того, в вашей системе путь к связке корневых сертификатов может быть немного другим. Думаю, вы без труда найдете нужный файл при помощи утилиты find.
Меняем права доступа к конфигу, иначе msmtp откажется использовать его:
chmod go-rwx ~ / .msmtprc
Проверяем, что письма ходят:
echo «Test message» | \
msmtp —debug -a afiskon @ example.ru -t -i afiskon @ example.ru
Далее создаем примерно такой файл ~/.muttrc:
set spoolfile=»imaps://afiskon@example.ru:PASSWORD@mail.example.ru/»
set folder=»imaps://afiskon@example.ru:PASSWORD@mail.example.ru/»
set sendmail=»/usr/local/bin/msmtp -a afiskon@example.ru -t -i»
set from=»afiskon@example.ru»
set realname=»Aleksander Alekseev»
set use_from=yes
set envelope_from=»yes»
set record=»=Sent»
set postponed=»=Drafts»
set signature=»~/.signature»
Насколько мне известно, в третьем тысячелетии абсолютно все почтовые сервисы предоставляют IMAP, и про POP3 можно наконец-то забыть.
Запускаем Mutt. Некоторые основные клавиши (все не привожу, так как их очень много и в клиенте все равно повсюду есть подсказки):
- ? — помощь;
- Вверх/вниз — перемещение между письмами;
- Enter — открыть письмо;
- d — пометить, что письмо следует удалить;
- u — отменяет пометку письма на удаление;
- N — пометить письмо как прочитанное/непрочитанное;
- $ — сохранить изменения (удалить помеченные письма, и т.д.);
- (цифра) — переход к письму с заданным номером;
- m — написать новое письмо;
- r — ответить на письмо;
- g — group reply, ответить всем;
- f — forward, перенаправить письмо;
- h — показать/скрыть все заголовки письма;
- a — создать алиас для отправителя письма;
- t — поставить/снять метку (tag);
- ;(что-то) — выполнить что-то с отмеченным;
- s — сохранить письмо на диск или в папку;
- c? — просмотр папок (там же см справку про создание/удаление папок);
- q — выйти из Mutt;
В любой непонятной ситуации просто нажмите Ctr+C, и на вопрос закрыть ли Mutt ответьте «no». Поиск по письмам работает примерно так. Нажмите T , затем введите ~B pattern для поиска по телу сообщения или ~s pattern для поиска по subject. По тому же принципу можно делать untag найденных ранее сообщений, только вместо T следует использовать Ctr+T. Подробности о поиске можно найти в документации.
Заметьте, что нажатие $ не приводит к загрузке новых писем. Загрузить новые письма можно, введя команду c? , и заново открыв папку INBOX. Понятно, что постоянно так делать неудобно, поэтому в ~/.muttrc стоит дописать такой хоткей:
bind index G imap-fetch-mail
Еще один момент, который поначалу не очень понятен. Новые непрочитанные письма помечаются как N (new). Но если переподключиться, то они будут отмечены, как O (old). Это все еще непрочитанные письма, но которые мы уже видели в прошлый раз. Таким образом можно отличить новые письма от совсем-совсем новых.
Еще один хинт. По умолчанию Mutt отображает все письма «плоско». Мне лично древовидное отображение нравится больше. Включается оно так:
set sort=threads
Примите во внимание, что Mutt имеет очень гибкие настройки в отношении что каким цветом подсвечивать. Вот вам для примера небольшой кусок ~/.muttrc, чтобы вы могли представить масштабы (какая строчка что означает, думаю, и так понятно):
# old unread messages
color index green default «~O»
# new unread messages
color index brightgreen default «~N»
# messages to me
color index cyan default «~p»
color index brightcyan default «~p~O»
color index brightcyan default «~p~N»
# messages from me
color index yellow default «~P»
# tagged messages
color index red default «~T»
# messages about to be deleted
color index brightyellow default «~D»
# message displaying settings
color hdrdefault green default
color header brightgreen default ^Subject:
color quoted cyan default
color signature red default
Мне очень нравится, что можно подсветить сообщения, отправленные лично тебе, а не просто в какой-нибудь мейлинг лист! Вообще, Mutt настолько гибок в плане настройки цветов, что для него делают целые темы.
Кстати, после внесения изменений в ~/.muttrc, их можно подгрузить без перезапуска Mutt, введя:
:source ~/.muttrc
По умолчанию Mutt скролит текст писем и списки писем экранами, а не по одной строке. Чтобы исправить это, я дописал в конфиг:
# scroll message line by line using arraws
bind pager previous-line
bind pager next-line
# scroll index line by line
set menu_scroll
Также в Mutt есть искуственные паузы, чтобы пользователь успевал прочитать все, что клиент выводит при подключении к IMAP серверу, и так далее. В целом это создает ощущение, что клиент тормозит, поэтому отключаем:
# disable artifitial pauses
set sleep_time = 0
Еще, чтобы клиент работал быстрее, можно включить кэширование (не забудьте предварительно создать соответствующие каталоги):
# enable caching
set header_cache=»~/.mutt/header_cache»
set message_cachedir=»~/.mutt/message_cache»
Теперь, допустим, нам нужна адресная книга. Нет ничего проще!
В ~/.muttrc дописываем что-то вроде:
alias afiskon «Aleksander Alekseev»
Теперь, когда предлагается ввести адрес получателя при написании нового письма, просто начните вводить его никнейм. Никнеймы автодополняются при нажатии Tab. А если нажать Tab дважды, то открывается полный список алиасов.
И последняя пара полезняшек. Чтобы при редактировании писем в Vim ширина текста автоматически ограничивалась до 72-х символов, в ~/.vimrc допишите:
» limit the width of e-mail text to 72 characters
au BufRead /tmp/mutt-* set tw=72
Интересно также, что Mutt позволяет слать письма прямо из консоли:
echo «Message from a console» | mutt -s ‘Test msg’ afiskon @ example.ru
Чтобы вы могли лучше представить, как происходит работа с Mutt, я приготовил пару скриншотов. Оба скришота кликабельные, в полном размере имеют формат PNG, 1366 x 768 пикселей, размер менее 250 Кб.
Просмотр списка писем:

Чтение конкретного письма:

А теперь, внимание, вопрос! А как работать с несколькими мейлбоксами? Ну-ка, ну-ка, кто уже догадался? 🙂
Да просто дописываем информацию об еще одном SMTP-аккаунте в ~/.msmtprc, создаем еще один .muttrc и переключаемся между ними при помощи :source . Я лично сложил все аккаунты в ~/.mutt/user1, ~/.mutt/user2 и так далее, а дэфолтный подключил в ~/.muttrc с помощью директивы source. Адресную книгу по тому же принципу можно положить в ~/.mutt/contacts. Единственная хитрость заключается в том, что после переключения на другой аккаунт при помощи :source , нужно сделать c! , чтобы клиент переподключился. Все гениальное — просто! Разумеется, для удобства можно определить хоткеи для переключения между аккаунтами. Пример вы найдете в полной версии ~/.muttrc к данной статье.
В нем же вы найдете кое-какие другие интересные вещи. Например, открытие ссылок из письма в браузере через urlscan, рендеринг HTML-писем при помощи lynx и их открытие в браузере по умолчанию, открытие картинок в gpicview, и не только. Кстати, много полезных рецептов, связанных с Mutt, можно найти на wiki-сайте Arch Linux. Ну и, конечно же, обратите внимание на официальный мануал по Mutt. Он классный и легко превращается в PDF-книгу, если нажать Ctr+P (print) в Chrome или Chromium.
Многое, к сожалению, остается за кадром. Например, настройка фильтров и работа с IMAP в оффлайне. Для последнего часто используют offlineimap. Но эти вопросы уже выходят за рамки данного поста и, откровенно говоря, сейчас мне это не особо нужно.
Дополнение: О том, как прикрутить GPG к Mutt, читайте в посте Использование PGP/GPG, руководство для нетерпеливых.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.