getmail+procmail+mutt+msmtp на примере FreeBSD
Программное обеспечение
Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 1 февраля 2010 года в 10:46.
Постоянная ссылка: http://www.nixp.ru/articles/41.html
getmail — программа для забора почты с POP3 ящиков, написана на языке Python.
getmail
getmail — программа для забора почты с POP3 ящиков, написана на языке Python. Программа намного проще и удобнее в настройке, чем ее аналог fetchmail, правда, менее функциональна: в частности, отсутствует поддержка IMAP и POP3S (в документации предлагается использовать для этих целей stunnel).
Настройка По умолчанию файл конфигурации находится в ~/.getmail/getmailrc. Формат его очень прост: сначала должна присутствовать секция [default], в которой указываются общие настройки для всех аккаунтов, затем следует настройка отдельных аккаунтов, для которых, в частности, могут быть переопределены настройки из секции [default]. Сейчас я приведу пример данного файла, а потом поясню, что значит каждая строчка.
[default] delete = 1 # удалять сообщения после получения verbose = 1 # выводить на экран отладочную информацию message_log = "~/.getmail/log" # вести журнал readall = 1 # загружать сообщения, помеченные как прочитанные postmaster = "|procmail" # перенаправлять почту procmail'у
[first] # название учетной записи server = pop.somewhere.ru # адрес POP3-сервера username = somebody # имя пользователя password = "this is a secret" # пароль (если хотите использовать # специальные символы, надо взять в двойные кавычки) delete = 0 # для данного аккаунта оставлять письма на сервере после получения readall = 0 # для данного аккаунта не загружать сообщения, # помеченные как прочитанные
[second] server = some.thing.net username = user password = pass
На этом настройка getmail’а заканчивается, для подробной информации читайте «man getmail», а также документацию, которая скорее всего находится в директории /usr/local/share/doc/getmail.
procmail
procmail служит для фильтрации и сортировки писем. Файл конфигурации procmail по умолчанию — ~/.procmailrc, в котором содержатся правила фильтрации. Пример ~/.procmailrc, который фильтрует различные почтовые рассылки и складывает их в разные ящики:
MAILDIR=$HOME/mail # путь к почтовому ящику LOGFILE=$HOME/.procmaillog# путь к файлу журнала
:0: * ^List-Id: <bugtraq\.list-id\.securityfocus\.com> bugtraq
:0: * ^List-Id: <fluxbox-users\.lists\.sourceforge\.net> fluxbox-users
:0: * ^Subject:.*WWC.* | iconv -c -f cp1251 -t koi8-r | formail -i "Content-Type: text/plain; charset="koi8-r"" >>wwc
:0: * ^TO_(mutt-users\@mutt\.org) mutt-users
:0: inbox
В первом случае мы фильтруем список рассылки bugtraq@securityfocus.com по List-Id и помещаем письма оттуда в ящик bugtraq, аналогично поступаем со списком рассылки fluxbox-users. Третье правило немного инетерснее. Задача заключается в том, что письма уведомления с форума wwc.ru приходят в кодировке cp1251, причем не содержат заголовок «Content-Type», что несколько усложняет положение. Мы перекодируем сообщение из cp1251 в koi8-r, добавляем заголовок «Content-Type: text/plain; charset=«koi8-r»» и кладем письмо в ящик wwc. Четвертое правило: фильтуем список рассылки mutt-users, который не сожержит заголовок «List-Id». Последнее правило: складываем всю оставшуюся почту в ящик inbox. Другие примеры могут быть найдены в «man procmailex».
msmtp
msmtp — это так называемый smtp-плагин для MUA. Он более стабильный и у него больше возможностей, чем у nbsmtp. Поддерживает SMTP AUTH: PLAIN, LOGIN и CRAM-MD5, IPv6, TLS зашифрованные соединения и т.д.
Настройка msmtp
Файл конфигурации по умолчанию — ~/.msmtprc. Его формат очень простой, и в большинстве случаев для настройки msmtp хватит трех строк. Пример простейшего ~/.msmtprc:
account default host smtp.mail.ru from bogorodskiy@inbox.ru
Первая строка — имя аккаунта. Имя аккаунта задается при помощи аргумента «--account=id». Если имя аккаунта не задано, используется аккаунт «default». host — адрес smtp-сервера, который вы хотите использовать для опправки писем. from — ваш e-mail адрес. Описание остальных директив файла конфигурации вы можете найти, набрав «man msmtp», там вы также найдете примеры файла конфигурации.
Настройка mutt
mutt является одним из самых функциональных и удобных консольных mail-клиентов. Файл конфигурации по умолчанию — ~/.muttrc. Пройдемся по этому файлу, я прокомментирую каждую интересную нам строчку.
set folder = "~/mail" mailboxes =bugtraq mailboxes =fluxbox-users mailboxes =inbox mailboxes =wwc mailboxes =mutt-users
# Тут мы задаем рабочую директорию и список поточых ящиков.
set sort=threads # сортирока сообщений по тредам
set realname="Your Name" # устанавливает имя, то есть в поле from # появится Your Name «you@add.ru»
ignore * unignore from: subject to cc \ date x-mailer x-url user-agent # this shows how nicely wrap long lines hdr_order from to cc date subject x-mailer user-agent
# указываем, какие заголовоки нам показывать и в каком порядке.
# Для переноса длинных строк можно использвать символ "\", # как это видно в директиве unignore.
macro index G "!getmail" macro pager G "!getmail"
# Теперь при нажатии «Shift»+«G» запускается getmail
set sendmail="/usr/local/bin/msmtp"
# а для отправки почты используется msmtp
set send_charset="us-ascii:koi8-r:utf-8"
# кодировка по умолчанию для исходящих русских сообщений -- koi8-r
subscribe bugtraq fluxbox-users mutt-users
# подписанные рассылки
# далее идут настройки цветов и другие второстепенные настройки, # пример можно найти в /usr/local/share/examples/mutt/
Теперь запускаем «mutt -y» и тестируем почтовую систему.
Документация: man getmail man procmail man procmailex man msmtp man mutt man muttrc /usr/local/share/doc/getmail/ /usr/local/share/doc/procmail/FAQ /usr/local/share/doc/mutt/manual.txt /usr/local/share/examples/getmail /usr/local/share/examples/procmail /usr/local/share/examples/mutt
(Внимание! Пути могут отличаться, если вы установили соответсивующие пакеты не с помощью системы портов FreeBSD.)
-
Популярные в этом разделе:
- «Обзор системы фильтрации спама rspamd: возможности, конфигурация, работа»,
- «Защищаем себя средствами GnuPG»,
- «Своё интернет-радио с Icecast».
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1