2026-09-19

Автоматизация обработки почты на Ubuntu: fetchmail + procmail + uudeview

Задача: автоматически забирать письма из почтового ящика, находить вложения и раскладывать их по каталогам. Решается связкой трёх утилит:

  • fetchmail — собирает почту с удалённых серверов (IMAP/POP3);
  • procmail — локальный фильтр и обработчик;
  • uudeview — извлекает бинарные вложения из писем.

Установка

apt-get install fetchmail procmail uudeview

где:

  • fetchmail — забирает почту из ящика;
  • procmail — фильтрация сообщений;
  • uudeview — обработка вложений.

Настройка

Fetchmail

vi ~/.fetchmailrc

Для IMAP:

poll imap.yandex.com
  port 993
  proto IMAP
  user "mailautomat"
  password "password"
  ssl
  mda "/usr/bin/procmail -d %T"
  set syslog
  set logfile "fetchmail/logs/fetchmail.log"

где:

  • imap.yandex.com — сервер почтового ящика;
  • 993 — порт IMAP;
  • mailautomat / password — логин и пароль.

Для POP3:

poll pop3.yandex.com
  port 995
  proto POP3
  user "mailautomat"
  password "password"
  ssl
  mda "/usr/bin/procmail -d %T"
  set syslog
  set logfile "fetchmail/logs/fetchmail.log"

Procmail

vi ~/.procmailrc
:0
*^content-Type:
{
    :0fw
    | uudeview -i +a +o -p $HOME/fetchmail/attachments -
}

Создаём каталоги и лог-файл:

mkdir -p ~/fetchmail/logs
touch ~/fetchmail/logs/fetchmail.log
mkdir ~/fetchmail/attachments

Ставим права на конфиг (иначе fetchmail не запустится):

chmod 700 ~/.fetchmailrc

Запускаем:

fetchmail -kv

Программа подключится к ящику, найдёт непрочитанные письма с вложениями и скачает их в fetchmail/attachments.


Дополнительные опции

Поиск писем в определённых папках

vi ~/.fetchmailrc
poll imap.yandex.com
...
user "mailautomat"
password "password"
folder "folder1" "folder2" "&BBAEMgRCBD4EMQQwBDQ-"

Опция folder перечисляет папки через пробел.

Если название папки на русском — перекодируйте его в UTF-7 (IMAP). Пример 3-й папки — результат такой перекодировки; онлайн-инструмент: toolswebtop.com/text/process/encode/UTF7-IMAP.

Условие по полю From

vi ~/.procmailrc
:0
*^content-Type:
* ^From.*master@imaxis.ru
{
...

Обрабатываются только письма от master@imaxis.ru.

Удаление сообщений с сервера

fetchmail -K

Ключ -K удаляет письма с сервера после получения.

Русские названия файлов

Если имена вложений приходят в неверной кодировке, ставим convmv:

apt install convmv
convmv -f koi8-r -t utf8 -r --notest

Конвертация имён из koi8-r в utf8.


Тонкости и подводные камни

  • Права 700 на .fetchmailrc — обязательное требование безопасности; без них fetchmail откажется работать.
  • Пароль в открытом виде.fetchmailrc содержит пароль; ограничьте доступ к файлу и используйте отдельный ящик.
  • fetchmail -k vs -K — строчная -k оставляет письма на сервере, заглавная -K удаляет. Будьте внимательны: -K удалит почту безвозвратно.
  • uudeview -i — игнорирует уже существующие файлы; при необходимости перезаписи уберите -i.
  • Русские имена папок — IMAP требует UTF-7, обычные русские названия не сработают.
  • Регулярные выражения procmail — чувствительны к регистру заголовков; проверяйте правила на тестовом ящике.
  • Кодировки вложений — для старых писем из Windows/1С может понадобиться convmv или iconv.

Шпаргалка

apt-get install fetchmail procmail uudeview convmv

# ~/.fetchmailrc
# poll imap.yandex.com
#   port 993
#   proto IMAP
#   user "mailautomat" password "password"
#   ssl
#   mda "/usr/bin/procmail -d %T"
chmod 700 ~/.fetchmailrc

# ~/.procmailrc
# :0
# *^content-Type:
# { :0fw | uudeview -i +a +o -p $HOME/fetchmail/attachments - }

mkdir -p ~/fetchmail/{logs,attachments}
fetchmail -kv

Проверено на: Ubuntu 22.04/24.04/26.04.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *