Вопрос или проблема
Я узнал, что добавив “,a” к имени файла в maildir, программа Evolution считает письмо важным. Поэтому я хотел бы пометить некоторые сообщения с помощью procmail, но что бы я ни делал, я продолжаю ходить по кругу, потому что я не знаю имя файла до того, как оно будет доставлено procmail, а когда оно уже доставлено, его сразу же переименовывают различные внешние механизмы, перемещая его из new в cur. Существует ли решение только с помощью procmail? Я знаю другие решения, но они меня здесь не интересуют. Заранее спасибо.
Ответ или решение
Чтобы добавить флаг ",a" к имени файла, доставленного в Maildir с помощью Procmail, необходимо понимать, как функционирует эта система и как Procmail обрабатывает входящие сообщения.
Понимание архитектуры Maildir
Maildir — это структура хранения электронной почты, которая организует письма в три каталога: new
, cur
и tmp
. При доставке письма в new
оно принимает имя в формате имя_файла:параметры
. После того как почтовая программа (например, Evolution) обнаруживает новое сообщение в new
, она перемещает его в cur
, где оно будет иметь вид имя_файла,A:параметры
. Именно флаг ,A
определяет, что это важное сообщение.
Подход с использованием Procmail
Procmail позволяет обрабатывать входящие письма, но перед его настройкой вам нужно убедиться, что Procmail установлен и настроен как почтовый агнет.
Настройка Procmail
-
Создайте конфигурационный файл Procmail:
Откройте или создайте файл.procmailrc
в вашем Home каталоге.vi ~/.procmailrc
-
Укажите правила для обработки сообщений:
Пример простого правила для добавления флага ",a":
:0: * ^Subject:.*Важное { :0 fw: | formail -c -x "From" | sed 's/^.*$/&/;s/$/,A/' > /path/to/Maildir/new/temporaryfile :0: * ? test -f /path/to/Maildir/new/temporaryfile { :0: | mv /path/to/Maildir/new/temporaryfile /path/to/Maildir/new/`formail -c -x "Message-ID" | sed 's/^.*@//;s/\(.*\)/\1,g/A/'` } }
В этом примере Procmail ищет письма с определенной темой и создает временный файл, который затем переименовывает с добавлением флага
,A
.
Учтите следующие моменты:
- Замены и тесты: Убедитесь, что вы правильно заполнили пути к вашему Maildir и проверили синтаксис всех используемых вами команд, таких как
formail
иsed
. - Правильные права доступа: Убедитесь, что Procmail имеет соответствующие права для создания и переименования файлов в вашей структуре Maildir.
Заключение
Запуск механизмов Procmail может потребовать некоторого времени для тестирования и адаптации. Однако, следуя этому руководству, вы сможете настраивать Procmail так, чтобы он добавлял флаг ",a" к важным сообщениям, что позволит вашей почтовой программе, такой как Evolution, воспринимать их как сообщения высокой важности.
Не стесняйтесь экспериментировать с другими условиями фильтрации в Procmail, чтобы максимально адаптировать решение под ваши нужды.