Налаштування консольного e-mail клієнта mutt за п'ять хвилин, записки програміста

Мотивація користуватися замість звичайних поштових клієнтів, таких, як Thunderbird, або, скажімо, Claws Mail, консольним поштовим клієнтом Mutt те саме мотивації користуватися irssi замість HexChat. Консольні додатки, як правило, набагато простіше своїх GUI-аналогів, а значить не так сильно жеруть батарею і більш безпечні. Також вони управляються виключно за допомогою клавіатури, можуть бути запущені на сервері в screen. і ось це все. На жаль, саме Mutt абсолютно незаслужено користується репутацією програми, дуже складною в налаштуванні. Сьогодні ми переконаємося, що в дійсності настройка Mutt не сильно відрізняється від настройки будь-якого іншого поштового клієнта.

На момент написання цих рядків в якості основної системи я використовую FreeBSD, тому у мене установка необхідних пакетів виглядає так:

sudo pkg install mutt msmtp

На додаток до пакету mutt потрібен ще й msmtp з тієї причини, що сам Mutt є тільки MUA, а не MTA. Іншими словами, безпосередньо для відправки листів Mutt використовує сторонні програми. Не переживайте, це не так страшно, як може здатися.

Доповнення: Починаючи з версії 1.5 стало можливим використовувати smtp безпосередньо. без сторонніх MTA. Для цього Mutt повинен бути зібраний з відповідними опціями. Залежно від вашої системи / дистрибутива ці умови можуть виконуватися або виконуватися, тому в цій статті описується спосіб, який працює завжди.

Насамперед вказуємо параметри підключення до SMTP. У файлі

/.msmtprc пишемо щось на кшталт:

account [email protected]
host mail.example.ru
port 587
from [email protected]
tls on
tls_starttls on
# Tls_trust_file /etc/ssl/cert.pem
tls_trust_file /usr/local/etc/ssl/cert.pem
auth on
user [email protected]
password PASSWORD

Міняємо права доступу до конфігу, інакше msmtp відмовиться використовувати його:

Перевіряємо, що листи ходять:

echo "Test message" | \
msmtp --debug -a afiskon @ example.ru -t -i afiskon @ example.ru

Далі створюємо приблизно такий файл

set spoolfile = "imaps: //[email protected]: [email protected]/"
set folder = "imaps: //[email protected]: [email protected]/"
set sendmail = "/ usr / local / bin / msmtp -a [email protected] -t -i"
set from = "[email protected]"
set realname = "Aleksander Alekseev"
set use_from = yes
set envelope_from = "yes"
set record = "= Sent"
set postponed = "= Drafts"
set signature = "

Наскільки мені відомо, в третьому тисячолітті абсолютно всі поштові сервіси пропонують IMAP, і про POP3 можна нарешті забути.

Запускаємо Mutt. Деякі основні клавіші (все не привожу, тому що їх дуже багато і в клієнті все одно всюди є підказки):

У будь-якій незрозумілій ситуації просто натисніть Ctr + C, і на питання закрити чи Mutt дайте відповідь «no». Пошук за листами працює приблизно так. Натисніть T. потім введіть

B pattern для пошуку по тілу повідомлення або

s pattern для пошуку по subject. За тим же принципом можна робити untag знайдених раніше повідомлень, тільки замість T слід використовувати Ctr + T.

Зауважте, що натискання $ не призводить до завантаження нових листів. Завантаження нових листи можна, ввівши команду c. і заново відкривши папку INBOX. Зрозуміло, що постійно так робити незручно, тому в

/.muttrc варто дописати такий хоткей:

bind index G imap-fetch-mail

Ще один хинт. За замовчуванням Mutt відображає всі листи «плоско». Мені особисто деревоподібна відображення подобається більше. Чи включається воно так:

Візьміть до уваги, що Mutt має дуже гнучкі настройки щодо що яким кольором підсвічувати. Ось вам для прикладу невеликий шматок

/.muttrc, щоб ви могли уявити масштаби (яка строчка що означає, думаю, і так зрозуміло):

# Old unread messages
color index green default "

# New unread messages
color index brightgreen default "

# Messages to me
color index cyan default "

p "
color index brightcyan default "

O "
color index brightcyan default "

# Messages from me
color index yellow default "

# Tagged messages
color index red default "

# Messages about to be deleted
color index brightyellow default "

# Message displaying settings
color hdrdefault green default
color header brightgreen default ^ Subject:
color quoted cyan default
color signature red default

Мені дуже подобається, що можна підсвітити повідомлення, відправлені особисто тобі, а не просто в якийсь мейл лист! Взагалі, Mutt настільки гнучкий в плані налаштування кольорів, що для нього роблять цілі теми.

До речі, після внесення змін до

/.muttrc, їх можна довантажити без перезапуску Mutt, ввівши:

За замовчуванням 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 = "

/.muttrc дописуємо щось на кшталт:

alias afiskon "Aleksander Alekseev"

І остання пара полезняшек. Щоб при редагуванні листів в Vim ширина тексту автоматично обмежувалася до 72-х символів, в

Цікаво також, що Mutt дозволяє слати листи прямо з консолі:

echo "Message from a console" | mutt -s 'Test msg' afiskon @ example.ru

Щоб ви могли краще уявити, як відбувається робота з Mutt, я приготував пару скріншотів. Обидва скрішота клікабельні, в повному розмірі мають формат PNG, 1366 x 768 пікселів, розмір менше 250 Кб.

Налаштування консольного e-mail клієнта mutt за п'ять хвилин, записки програміста

Читання конкретного листа:

Налаштування консольного e-mail клієнта mutt за п'ять хвилин, записки програміста

А тепер, увага, питання! А як працювати з кількома мейлбоксамі? Ну-ка, ну-ка, хто вже здогадався. )

/.mutt/user2 і так далі, а дефолтний підключив в

/.muttrc до даної статті.

У ньому ж ви знайдете деякі інші цікаві речі. Наприклад, відкриття посилань з листа в браузері через urlscan. рендеринг HTML-листів за допомогою lynx і їх відкриття в браузері за замовчуванням, відкриття картинок в gpicview, і не тільки. До речі, багато корисних рецептів, пов'язаних з Mutt, можна знайти на wiki-сайті Arch Linux. Ну і, звичайно ж, зверніть увагу на офіційний мануал по Mutt. Він класний і легко перетворюється в PDF-книгу, якщо натиснути Ctr + P (print) в Chrome або Chromium.

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

А чи використовуєте ви Mutt і якщо так, можливо, вам є що доповнити?

Сподобався пост? Поділися з іншими: