как добавить флаг “,a” к имени файла, отправленного в maildir с помощью procmail?

Вопрос или проблема

Я узнал, что добавив “,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

  1. Создайте конфигурационный файл Procmail:
    Откройте или создайте файл .procmailrc в вашем Home каталоге.

    vi ~/.procmailrc
  2. Укажите правила для обработки сообщений:

    Пример простого правила для добавления флага ",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, чтобы максимально адаптировать решение под ваши нужды.

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

Капча загружается...