Intereting Posts
Порядок выполнения аргументов команды touch Можно ли показывать текущий номер строки истории при выполнении обратного поиска в bash? axelget, yum и crccheck не удалось уничтожена папка теперь без атрибута каталога Вернуть initramfs в более раннее состояние после настройки Dropbear для раннего расшифровки LUKS Как исправить bash, ища программу в неправильном каталоге (Проблемы с настройкой NPM на Ubuntu 11.10) команда sed для добавления другого текста при множественном вводе строки KDE 4.14 на OpenSuse, KDE Thunderbird с надписью «Отправить как электронную почту» Почему некоторые из моих разделов lvm имеют «-real», добавленные к их именам? Как искать доступные команды в bash Открыть запуск через оболочку / скрипт Как загрузить источник нувори в выбранном каталоге с помощью Portage? Как может быть установлен флаг systemd service, чтобы другие службы могли дождаться его готовности до их запуска? Некоторые ключи (стрелки, прокрутка вверх, вниз) не работают в rdesktop-vrdp Не удается выполнить ssh на виртуальную машину только в сети хоста

Procmail распознает электронные письма, которые уже были скопированы в папку

Я работаю в месте, где сообщения электронной почты отправляются в несколько групп очень часто, а это значит, что электронные письма будут отфильтрованы в произвольные каталоги, даже в середине потока, если новая группа будет добавлена ​​в поток. Я хотел бы видеть каждое электронное письмо в каждой папке группы, куда оно было отправлено, что означает больше дискового пространства, но дисковое пространство дешево. Для этого существует флаг «c», но проблема в том, что если поставить «c» для каждого правила, у меня будет каждое электронное письмо в соответствующей папке и в папке «Входящие» в конце. Поэтому я хотел бы иметь последнее правило, которое могло бы распознать, было ли это электронное письмо уже распознано / отфильтровано в какой-либо папке, а если нет, пропустите его в папку «Входящие». Я попытался использовать «test -z $ LASTFOLDER», который, казалось, работал, за исключением того, что с этим procmail возвращался сбой fetchmail, который, в свою очередь, не удалял мои сообщения электронной почты с сервера imap, и произошел беспорядок. это? Должен ли я использовать что-то еще для фильтрации почты? Могу ли я записать достаточно ясно, чего хочу?

Вы можете сделать что-то подобное для всех правил, которые сортируют сообщения для списка папок:

:0 * ^List-Id:... { :0 c: somefolder :0 fw | formail -a X-Chad-Loop: Chad was here } 

Затем перед самым концом:

 :0 * ^X-Chad-Loop:\ Chad\ was\ here { :0 /dev/null HOST } 

Я думаю, что это также будет регистрировать доставку в /dev/null . Если вам это не нравится, вам придется играть с LOGABSTRACT .

На стороне примечания: будьте осторожны, что procmail не был сохранен в течение длительного времени, и он имеет известные проблемы безопасности. Даже некоторые из его старых разработчиков времени рекомендуют переключиться на что-то другое в наши дни. Для чего это стоит, мое личное предпочтение – fdm , у которого есть намного лучшая запись безопасности.

Идея LASTFOLDER полностью прекрасна; вам просто нужно убедиться, что вы не закончите сбой в вызове процесса вызова. Вы не показываете свой код, но что-то вроде следующего должно работать нормально.

 :0 * LASTFOLDER ?? . /dev/null 

variable ?? regex синтаксис variable ?? regex – это встроенное средство Procmail для проверки переменной. Единственная точка будет соответствовать любому значению вообще, кроме пустой строки (или, технически, строки, содержащей только строки новой строки).