После флагов можно указать двоеточие и имя файла блокировки. Файл блокировки — это специальный файл, который сообщает о том, что в данный момент происходит работа с другим файлом. При наличии файла Procmail откладывает обработку сообщения до тех пор, пока этот файл не будет удален. Файл блокировки удобно использовать в тех случаях, когда в очереди содержится много сообщений; ,без него может возникнуть ситуация, когда сообщения, принятые одно за другим, будут записаны в неверном порядке. По умолчанию имя файла блокировки строится на основе имени файла, в который помещается почта (этот файл указывается в строке действия). Если в строке действия задается обработка сообщения другой программой, вы можете указать имя файла блокировки после двоеточия.
Условия в составе рецепта состоят из любого (возможно, нулевого) числа строк, обычно начинающихся с символа *
. Как правило, в составе условий задаются регулярные выражения — строки символов, с которыми Procmail сравнивает входные данные (заголовок и тело сообщения). Большинство символов используется литерально, но некоторые символы имеют специальные значения. Специальные символы и выполняемые ими действия описаны ниже.
• ^
. Указывает на начало строки. Этот символ указывается во многих условиях Procmail после символа *
.
• $
. Данный символ указывает на конец строки.
• .
. Точке соответствует любой символ, кроме символа новой строки. Например, выражению удовлетворяют dog
, dig
, dug
и любая другая трехсимвольная последовательность, которая начинается с d
и заканчивается g
.
• а*
. Данному выражению соответствует любое (в том числе нулевое) число символов, указанных перед звездочкой, следующих друг за другом. Очевидно, что вместо а вы можете подставить любой символ. Например, если вам надо найти последовательность, начинающуюся с цифр 802
, за которыми следует произвольное количество неизвестных символов, а затем 1618
, то сделать это поможет выражение 802.*1618
.
• a+
. Это выражение выполняет те же действия, что и a*
, но количество символов в последовательности не может быть нулевым.
• a?
. Данное выражение означает, что указанный символ может отсутствовать.
•
. Чтобы указать на то, что в строке может присутствовать одна из двух последовательностей символов, надо разделить эти последовательности символом |
. При необходимости вы можете задать выбор более чем из двух альтернативных вариантов, использовав несколько символов |
.
• (
. Это выражение похоже на a*
, но оно означает многократное повторение не одного символа, а целой последовательности.
• [
. Набор символов, помещенных в квадратные скобки, означает, что в строке должен присутствовать любой из них. Например, выражению [aeiou]
соответствуют символы а
, е
, i
, о
или u
. Если два символа разделены дефисом (-
), они задают диапазон символов. Например, выражению [m-q]
соответствуют символы m
, n
, о
, p
или q
.
• \
. Обратная косая черта отменяет специальное значение символа. Например, выражение \.
соответствует обычной точке.
Дополнительную информацию о регулярных выражениях вы найдете на страницах справочной системы, посвященных Procmail. Объединяя обычный текст и специальные символы, вы можете создавать достаточно сложные выражения. Как было сказано ранее, условия в составе рецепта могут занимать одну или несколько строк. В большинстве случаев используются условия, состоящие из одной строки. Если условия занимают несколько строк, письмо соответствует рецепту в том случае, если оно соответствует каждому из условий. Если условия отсутствуют, рецепту соответствует любое сообщение.
В составе условий могут быть использованы дополнительные символы, указывающие на то, что рецепт должен быть интерпретирован специальным образом. Некоторые из них описаны ниже.
• !
. Данный символ инвертирует результат сравнения. Если условие начинается с символа !
, то, для того, чтобы письмо соответствовало рецепту, оно не должно соответствовать данному условию. Например, вы можете создать рецепт, которому соответствуют все сообщения, кроме адресованных пользователю postmaster
.
• <
. Условие применяется в том случае, если длина сообщения меньше указанного числа байтов.
• >
. Условие применяется в том случае, если длина сообщения больше указанного числа байтов.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии