Действие в составе рецепта занимает одну строку и указывает Procmail, как следует обрабатывать сообщение. Простое действие лишь задает имя файла, в который Procmail должен поместить сообщение. Действия Procmail хорошо сочетаются с sendmail
mbox
. Если же вы работаете с qmail
или другим сервером, поддерживающим формат maildir
, описание действия Procmail необходимо завершать косой чертой (/
), которая указывает на то, что Procmail должен сохранить сообщение в формате maildir
. Procmail также поддерживает еще один формат хранения сообщений, для использования которого описание действия должно заканчиваться косой чертой и точкой.Помимо записи писем в папки, Procmail также может выполнять другие действия, для описания которых в начале строки указываются перечисленные ниже символы.
• !
• |
• {
В каждом из рецептов может содержаться лишь одно действие. Если вы хотите, чтобы над сообщением выполнялось несколько операций, вам следует создать сценарий и передать ему сообщение для обработки. При этом вам необходимо следить за тем, чтобы сценарий прочитал все сообщение, в противном случае Procmail проверит сообщение с помощью других правил. В некоторых случаях в составе рецепта задается флаг с
Пример использования рецептов
Приведенные выше сведения были необходимы для создания общего представления о работе Procmail. В листинге приведен чрезвычайно простой пример файла Procmail, предназначенного для фильтрации сообщений. Содержащиеся в нем рецепты пригодны для пользовательского файла .procmailrc
Листинг 19.3
. Пример конфигурационного файла ProcmailMAILDIR = $HOME/Mail
# Поиск рекламных сообщений. Проверка не затрагивает письма,
# адресованные пользователю postmaster или отправленные им
:0
*! (From|To) : . *postmaster
{
: 0 В
* .*301.*S.*1618 /dev/null
:0
* From: .*badspammer\.net
/dev/null
:0
* Subject:.*\$\$\$
/dev/null
}
# Проверка по ключевым словам rug и david и
# перенаправление писем адресату
:0 с
* From: . *david@pangaea\.edu
* Subject: . *rug
! amy@threeroomco.com
# Сообщения списков рассылки помещаются в отдельную папку
:0:
* То: . *list@mailinglist\ .example\ .com
$MAILDIR/mailinglist
Листинг 19.3 иллюстрирует некоторые важные особенности рецептов Procmail.