Автоматизация обработки почты на 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 -kvs-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.