Показаны сообщения с ярлыком mutt. Показать все сообщения
Показаны сообщения с ярлыком mutt. Показать все сообщения

среда, 12 января 2011 г.

Доставка и чтение почты: fetchmail, procmail, kmail

До недавнего момента за доставку (и отправку) почты, при подключении ноутбука к интернет, у меня отвечал masqmail. И, если я правильно ошибаюсь, в новых версиях этой программы возможность доставки решили выпилить, и порекомендовали для этих целей воспользоваться специализированными утилитами. Я решил не дожидаться момента, когда в репозиториях debian-а появится новый masqmail, и сразу перейти на рекомендуемый способ получения почты.
Среди найденного списка программ ($ apt-cache search fetch mail) наиболее подходящими оказались getmail4 и fetchmail. В итоге установил старый добрый fetchmail, несмотря на то что питоновский getmail4 позиционируется как более простой, и даже поддерживает Maildir из коробки.
Итак почту я храню в ящике формата maildir:

~/Mail/
 drafts/
 inbox/
  cur/
  new/
  tmp/
 outbox/
 sent-mail/
 templates/
 trash/

За обработку полученной корреспонденции (распихивание её по ящикам) будет отвечать procmail (в качестве альтернативы можно выбрать maildrop, как рекомендуется в man fetchmail или другой mda).

Часть 1 - получение почты вручную от имени пользователя


Создаем простейший конфигурационный файл для procmail (слэш в конце имени ящика указывает на то, что это ящик maildir):

$ cat > ~/.procmailrc
MAILDIR=$HOME/Mail/

:0
inbox/
^C

В результате вся обрабатываемая почта будет складываться в каталог inbox/.
Конфиг для fetchmail можно создать при помощи утилиты fetchmailconf; вот итог её работы, подходящий под мои требования:

$ cat > ~/.fetchmailrc
# Configuration created Wed Jan 12 11:10:56 2011 by fetchmailconf 1.57
set postmaster "reel"
set bouncemail
set no spambounce
set softbounce
set properties ""
set invisible

poll freemail.ukr.net with proto POP3
 user 'r*******@ukr.net' there with password '**********' is 'reel' here options keep stripcr
 mda 'procmail'
 user 'm*******@ukr.net' there with password '**********' is 'reel' here options keep
 mda 'procmail'

poll imap.gmail.com with proto IMAP
 user 'kirill.zabarniuk@gmail.com' there with password '**********' is 'reel' here options keep ssl
 mda 'procmail'
^C

При запуске, fetchmail будет получать почту из двух почтовых ящиков на сервере ukr.net (по протоколу pop3), и из одного ящика на gmail (по протоколу imap). Копии всех сообщений будут оставаться на сервере, а сами сообщения будут передаваться для дальнейшей обработки procmail-у.
Имеет смысл написать пару сообщений самому себе и проверить как это работает:

$ fetchmail
1 сообщение (1 просмотрено) для r*******@ukr.net на freemail.ukr.net (1974 октетов).
пропускается сообщение r*******@ukr.net@new.ukr.net:1 не очищено
1 сообщение (1 просмотрено) для m*********@ukr.net на freemail.ukr.net (1144 октетов).
пропускается сообщение m*********@ukr.net@new.ukr.net:1 не очищено
1 сообщение для kirill.zabarniuk@gmail.com на imap.gmail.com.
считывается сообщение kirill.zabarniuk@gmail.com@wy-in-f109.1e100.net:1 из 1 (1443 октетов в заголовке) (513 октетов в теле) не очищено

Почту я читаю с матом (mutt), но иногда пользуюсь kmail. Обычно kmail сам находит каталоги с почтой пользователя при первом запуске. Но если этого не произошло, и он решил заныкать сообщения у себя (в каталоге по умолчанию ~/.kde/share/apps/kmail/Mail/), то можно попросить его изменить путь к этому каталогу (http://kmail.kde.org/manual/faq.html#id2792815, http://forum.kde.org/viewtopic.php?f=20&t=84335#p140087):

$ kwriteconfig --file kmailrc --group General --key folders $HOME/Mail

см также Автоматическое получение почты на компьютере без постоянного подключения к интернет

вторник, 11 января 2011 г.

Настройка msmtp для отправки сообщений через несколько серверов (ukr.net, gmail.com)

Выкладываю рабочий конфиг с настройками msmtp (он не захотел с пол-пинка отправлять почту через ukr.net, а в инете готовых решений не обнаружилось):

$ cat ~/.msmtprc
defaults
syslog on

account r*******_at_ukr.net
from r*******@ukr.net
host smtp.ukr.net
protocol smtp
auth on
tls on
tls_starttls off
tls_certcheck off
port 465
user r*******@ukr.net
password **********

account m*********_at_ukr.net
from m*********@ukr.net
host smtp.ukr.net
protocol smtp
auth on
tls on
tls_starttls off
tls_certcheck off
port 465
user m*********@ukr.net
password **********

account kirill.zabarniuk_at_gmail.com
from kirill.zabarniuk@gmail.com
host smtp.gmail.com
protocol smtp
auth on
tls on
tls_starttls on
tls_certcheck off
port 587
user kirill.zabarniuk@gmail.com
password ***********

account default
host localhost
port 25
auto_from on
maildomain localhost


Подружить msmtp с ukr.net оказалось просто, ключевое слово: tls_starttls off.

понедельник, 10 января 2011 г.

Просмотр html-содержимого в mutt и правильная кодировка

Есть такой, очень функциональный текстовый браузер, как w3m, который, кроме всего прочего, умеет отображать картинки. Причем не только во фрэймбуффере, но и в окне терминала (в debian нужно установить пакет w3m-img):




Так вот, в debian-е, если этот пакет установлен, mutt будет использовать его при отображении html-содержимого в e-mail сообщениях. Однако, сообщения приходят в различных кодировках, а в mutt все отображается лишь в одной (utf8 по умолчанию), в результате часть сообщений оказываются нечитаемыми. Чтобы это исправить, надо добавить следующую строку в свой .mailcap:

cat >> ~/.mailcap
text/html; /usr/bin/w3m -dump -I %{charset} -T text/html '%s'; copiousoutput; description=HTML Text; nametemplate=%s.html


"Магической" является опция -I %{charset}. Результат - на картинках: