Настройка консольного почтовика mutt и реагирование на ошибки

Тип статьи:
Подсмотрено

Mutt почтовый клиент (Mail User Agent (MUA)) с текстовым интерфейсом для *nix подобных систем. Изначальноmutt мог только просматривать почту, но последние версии умеют получать, отправлять и фильтровать почтовые сообщения.

Из личного опыта (1,2 года) могу сказать, что mutt заменил для меня все почтовые клиенты которые я пробовал: разные веб-морды, thunderbird, claws, gear. Это не потому, что к нему можно подключить ваш любимый редактор (например, vim) для редактирования текста :), а он подкупает своим минимализмом, шустростью и конечно возможности заточить под себя. Особенно быстрота реакции заметна на нетбуке, для которого веб-морда Google Mail местами ну очень тормозит.

Установка

# под ArchLinux<
yaourt -S mutt
# под Ubuntu<
sudo apt-get install openssl mutt

Основной конфигурационный файл может находиться в ~/.muttrc или ~/.mutt/muttrc. Пример моего ~/.muttrc.

Для IMAP будет достаточно прописать локальные директории (inbox, outbox, и т.д.). А вот для POP3 понадобиться создать локальные директории вручную.

Для просмотра почтового ящика некоего юзера достаточно запустить

mutt -f /path/to/mail/john
(например на сервере).

Общие настройки

# vim ~/.muttrcset realname = "Иван Моргун"set use_from = yesset editor='vim -c "set spell spelllang=en_us,ru_ru"'# see the headers when editing# set edit_headers # sort by newest conversation first.set sort = reverse-threadsset sort_aux = last-date-received

# confirmation skipping
set fast_reply=yes        # when replying, don't prompt for address
set include=yes           # include original text on reply?
set forward_quote=yes     # include original text on forward?
set delete=yes            # don't ask for delete confirmation
Пример настройки IMAP (на примере GMail)
# vim ~/.muttrc
set from = yourmail@gmail.com
set imap_user = yourmail@gmail.com
set imap_pass = secret
set smtp_url = smtp://yourmail@smtp.gmail.com:587/
set smtp_pass = secret

# don't let your firewall kill your idle connection
set imap_keepalive  = 900

# do not copy sent mail
set copy = no
set move = no

set folder = imaps://imap.gmail.com:993
set spoolfile = +INBOX #or +[Gmail]/Important
set postponed = +[Gmail]/Drafts

# cache
set header_cache    = ~/.mutt/cache/headers
set message_cachedir    = ~/.mutt/cache/bodies
set certificate_file    = ~/.mutt/certificates
Пример настройки POP3 (например для вашего домена example.com)
Мы можем использовать один из следующих видов почтовых ящиков:
mbox — один файл со всеми письмами;
maildir — набор директорий (считается более быстрой версией).
Я использую getmail для получения почты
# под ArchLinux
yaourt -S getmail
Создадим нужные директории
mkdir -p ~/.mutt/cache
mkdir ~/.getmail
mkdir ~/.mail
mkdir -p ~/.mail/{cur,new,tmp}
<div></div>
Установим опции для получения почты
# vim ~/.getmail/getmailrc[retriever]
type = SimplePOP3Retriever
server = mail.example.com
username = yourmail@example.com
port = 110
password = secret

[destination]
type = Maildir
path = ~/.mail/

[options]
read_all = False
Изменим права доступа
chmod 700 ~/.getmail
Попробуем запустить getmail. Если все пройдет без ошибок — мы можем добавлять getmail в cron для периодической проверки почты. Следующий пример показывает как добавить getmail в cron для проверки раз 10 минут.
# crontab -e
*/10 * * * * /usr/bin/getmail
Укажем mutt где лежат письма от getmail
# vim ~/.mutt/muttrc# POP3
set from = yourmail@example.com
set mbox_type=Maildir
set folder=$HOME/.mail
set spoolfile=+/
set header_cache=~/.mutt/cache
Пример настройки SMTP (например для вашего домена example.com)
vim ~/.mutt/muttrcset my_pass='secret'
set my_user=yourmail@example.com
set smtp_url=smtp://$my_user:$my_pass@mail.example.com
set record="+sent"                 # where to store sent messages
set postponed="+postponed"         # where to store draft messages
Мы можем зашифровать пароли с помощью GPG, детали настройки тут.
Отправка сообщения с атачем из терминала
Отправка сообщения с текстом
mutt -s "subject" recipient@server.com < ~/message.txt
Отправка сообщения с текстом и файлом
mutt -s "subject" recipient@server.com -a file.zip < ~/message.txt
Псевдонимы
Псевдонимы удобны для быстрого доступа к контактам.
# vim ~/.muttrcset alias_file = "~/.mutt/aliases"
set sort_alias = alias
set reverse_alias = yes
source $alias_file
Пример файла с псевдонимами
# vim ~/.mutt/aliases
alias mom mom@example.com
Useful shortcuts
m — написать письмо;
r — ответить на сообщение;
f — переслать письмо;
t — изменить адрес получателя;
c — изменить Cc поле;
a — прикрепить файл к письму;
y — отправить письмо;
стрелки вверх/вниз или j/k — перемещение между письма не отмеченными для удаления;
J/K — перемещение между письмами отмеченными для удаления;
/ — поиск (в отправителе/тему если находимся в списке сообщений; или в сообщении, если оно открыто и тому подобное)
enter — прочитать письмо;
space (в сообщении) — перейти к следующему письму;
S (в сообщении) — пропустить цитируемый текст;
T — переключить видимость цитируемого текста;
d — пометить текущие письмо на удаление;
u — удалить маркер на удаление для выбранного письма;
o — сортировка;
q — выход;
Внешний вид
Мне нравиться темные цвета solarized.
Cкачиваем тему
cd ~/.mutt/
git clone https://github.com/altercation/mutt-colors-solarized.git
Устанавливаем
#vim ~/.muttrc
...
source ~/.mutt/mutt-colors-solarized/mutt-colors-solarized-dark-16.muttrc

Возможные ошибки

При попытке отправить через консоль таким способом начал выдавать ошибку:

mutt -s "123" recipient@gmail.com < /home/user/mutt/mail_shablon.html
Can't dotlock /home/user/sent.
Couldn't lock /home/user/sent
Could not send the message.

Нужно ввест команду:

mutt -s "123" recipient@gmail.com

После чего написать сообщение, сохранить его и попытаться отправить, программа сама предложит разблокировать.

Lock count exceeded, remove lock for /home/user/sent? ([yes]/no): 

На предложение нужно согласиться написав «yes». После чего можно смело отправлять сообщения через консоль.


Варианты конфигов.

904

Комментарии

Нет комментариев. Ваш будет первым!