The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

procmail ()
  • procmail (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • >> procmail (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  • procmail (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
  • Ключ procmail обнаружен в базе ключевых слов.
  •  

    НАЗВАНИЕ

    procmail - автономный обработчик почты  

    СИНТАКСИС

    procmail [-ptoY] [-f от_кого]
            [параметр=значение | файл_настроек] ...
    procmail [-toY] [-f от_кого] [-a аргумент] ...
            -d получатель ...
    procmail [-ptY] -m [параметр=значение] ... файл_настроек
            [аргумент] ...
    procmail [-toY] [-a  аргумент] -z
    procmail -v
    
     

    ОПИСАНИЕ

    Для быстрого запуска смотри ПРИМЕЧАНИЯ в конце этого документа.
    Вызов procmail происходит автоматически, посредством механизма файла .forward сразу по прибытию почты. Альтернативным способом является, если установлено системным администратором, вызов непосредственно из MTA. Сначала, при вызове, он устанавливает значения по умолчанию для некоторых переменных окружения, считывает почтовое сообщение из стандартного ввода до EOF, отделяет тело сообщения от заголовка и затем, если не имеется аргументов командной строки, он ищет файл $HOME/.procmailrc. Согласно способам обработки в этом файле, только-что прибывшее почтовое сообщение определяется в необходимую папку (и не только). Если конфигурационный файл не найден или обработка файла закончилась неудачей, в этом случае procmail сохраняет почту в системном почтовом ящике по умолчанию.
    Если не имеется файлов конфигурации и в командной строке не указано -p, procmail, прежде чем прочитать $HOME/.procmailrc, интерпретирует команды из /etc/procmailrc (если имеется таковой). При создании /etc/procmailrc должны соблюдаться предосторожности, так как если того допустят обстоятельства, программа будет выполняться с правами суперпользователя (вопреки, разумеется, $HOME/.procmailrc).
    При выполнении suid root или привилегиями суперпользователя, procmail будет в состоянии выполняться с функциональными расширениями для обратной совместимости с агентом доставки почты.
    Procmail также может быть использован как основное средство фильтрации почты. То есть, если существуют условия, предоставляющие возможность вызова procmail из специального правила sendmail.
    Формат файла конфигурации детально описан в страницах руководства пользователя procmailrc(5).
    Сбалансированная техника оценки детально описана в страницах руководства пользователя procmailsc(5).
    Примеры настроек для файлов конфигурации можно найти в страницах руководства пользователя procmailex(5).
     

    Сигналы

    TERMINATE
    Преждевременно завершить работу и повторно постановить почту в очередь.
    HANGUP
    Преждевременно завершить работу и отвергнуть почту.
    INTERRUPT
    Преждевременно завершить работу и отвергнуть почту.
    QIUT
    Преждевременно завершить работу и молча потерять почту.
    ALARM
    Форсировать время ожидания (см. TIMEOUT)
    USR1
    Аналогично VERBOSE=off
    USR2
    Аналогично VERBOSE=on
     

    ОПЦИИ

    -v Procmail отобразит свою версию, конфигурационные параметры, с которыми он был собран, и завершит работу.
    -p
    Не сбрасывать старые значения переменных окружения. Обычно procmail при старте очищает все значения переменных окружения, за исключением значения временной зоны (TZ). Однако в любом случае, любые значения по умолчанию переназначат предустановленные значения переменных окружения, т.е. procmail не обратит внимания на предопределённые значения переменных, а лишь перепишет их своими собственными. Для получения списка определяемых procmail переменных обратитесь к страницам руководства пользователя procmailrc(5). Если одновременно используются -p и -m, то список переопределяемых переменных сужается до LOGNAME, HOME, SHELL, ORGMAIL и MAILDIR.
    -t
    Смягчает последствия ошибок при доставке почты. То есть, если procmail не в состоянии доставить посту по назначению, почта не отбрасывается, а возвращается в очередь отправки. Через некоторое время будет предпринята другая попытка доставить почту.
    -f от_кого
    Заставляет procmail подменять в поле "From" значение от_кого как отправителя (вместо -f может быть использовано устаревшее -p). Если от_кого содержит только -, как единственное значение, в этом случае procmail лишь обновит временной штамп поля "From" (если таковой имеется, если нет, то он будет создан).
    -o
    Вместо предоставления возможности создания строк "From" любому, кто пожелает, просто переписывает подделки.
    -Y
    Подразумевает традиционный почтовый ящик в формате Berkeley, игнорируя любые поля Content-Length:.
    -a аргумент
    Это устанавливает $1 равным аргумент. Каждое сочетание -a аргумент установит следующий номер переменной ($2, $3, и т.д.). Это может быть использовано для передачи procmail мета информации. Обычно это делается передачей $@х-информации из правил почтовой программы sendmail.
    -d получатель ...
    Это включает режим непосредственной доставки. Доставка будет произведена локальному пользователю получатель. Это разумеется возможно только в том случае, если procmail имеет привилегии супер-пользователя (или procmail выполняется с euid и egid получателя). Procmail сменит идентификатор пользователя на uid подразумеваемого получателя и доставит почту, как если бы был вызван получателем без параметров (т.е., если не найдено файла конфигурации, доставляется как обычная почта). Эта опция несовместима с -p.
    -m
    Переводит procmail в режим работы почтового фильтра общего назначения. В этом режиме в командной строке должен быть указан один файл_конфигурации. После него может быть указано неограниченное количество аргументов. Если файл_конфигурации является абсолютным путём, начинающимся с /etc/procmailrcs/ без ссылок на вышестоящие каталоги (то есть, не может быть упомянут каталог уровнем выше), в этом случае procmail, при отсутствии нарушений безопасности, принимает тождество владельца файла_конфигурации (или символической ссылки). Варианты расширенного использования этой опции вы должны искать ниже, в разделе ПРИМЕРЫ.
    -z
    Включает режим LMTP, когда procmail действует как RFC2033 LMTP-сервер. Доставка осуществляется в той же манере и с теми же ограничениями, как доставка с использованием -d. Эта опция несовместима с -p и -f.
     

    АРГУМЕНТЫ

    Любые аргументы, содержащие '=', рассматриваются как назначение переменных окружения, они все будут рассмотрены после того, как назначены значения по умолчанию и до того, как открыт файл конфигурации. Подразумевается, что любые другие параметры, являются путями файлов_конфигурации (как абсолютные, так и начинающиеся с `. / ' относительно текущего каталога; любой другой относительный путь рассматривается относительно $HOME, если не указана опция -m, в этом случае все относительные пути рассматриваются относительно текущего каталога); procmail начнет с первого встреченного в командной строке. Все последующие будут рассматриваться лишь в том случае, если предшествующие имеют не подходящую HOST-директиву или в случае, если они не должны существовать.

    Если не задано файлов_конфигурации, то проверяется $HOME/.procmailrc. Если и он не может быть найден, обработка продолжается в соответствии с установками переменных окружения по умолчанию и указанными в командной строке.  

    ПРИМЕРЫ

    Примеры для составления файла конфигурации можно найти на страницах руководства пользователя procmailex(5). Образец небольшого файла конфигурации можно найти ниже, в секции ПРИМЕЧАНИЯ.

    Если вы недостаточно хорошо знакомы с синтаксисом sendmail.cf, то остальную часть этой секции можно пропустить.

    Типичным является использование опции -m при вызове procmail из правила в файле sendmail.cf. Для этого самым подходящим способом является создание дополнительного вызова почтовой программы procmail в вашем файле sendmail.cf (в дополнение к возможно уже имеющемуся там вызову "локальной" почтовой программы, запускающему procmail). Для создания такого правила с procmail я бы предложил что-нибудь наподобие:

    Mprocmail, P=/usr/bin/procmail, F=mSDFMhun, S=11, R=21, A=procmail -m $h $g $u
    Это позволит вам использовать правила подобные следующим (наиболее вероятно правило 0) для фильтрации почты при помощи procmail (обратите пожалуйста внимание на наличие табуляции в начале строки для обозначения продолжения правила, и табуляцию, используемую для отделения комментариев):
    R$*<@some.where>$*
            $#procmail $@/etc/procmailrcs/some.rc $:$1@some.where.procmail$2
    R$*<@$*.procmail>$*
            $1<@$2>$3       Already filtered, map back
    

    /etc/procmailrc/файл.rc при этом, должен иметь следующее содержание:

    SENDER = "<$1>"                 # поправка для пустых адресов отправителей
    SHIFT = 1                       # удалить это из $@
    

    :0                              # выбросить всю ненужную почту
    * ^Subject:.*junk
    /dev/null
    

    :0 w                            # передать всю оставшуюся почту
    ! -oi -f "$SENDER" "$@"
    
    Следите за тем, чтобы при пересылке внутренней почты при отправке почты, если адрес подпадает под первое правило из /etc/procmailrc/файл.rc, не возник бесконечный почтовый цикл.  

    ФАЙЛЫ

    /etc/passwd используется для назначения получателю переменных окружения LOGNAME, HOME и SHELL
    /var/spool/mail/$LOGNAME
    системный почтовый ящик; и системный почтовый ящик, и непосредственно каталог, в котором он находится, будут созданы заново при каждом запуске procmail, даже если один из них отсутствует
    /etc/procmailrc
    начальный глобальный файл конфигурации
    /etc/procmailrcs/
    специальный привилегированный путь для файлов конфигурации
    $HOME/.procmailrc
    файл настроек по умолчанию
    /var/spool/mail/$LOGNAME.lock
    файл блокировки для системного почтового ящика (не используется автоматически если $DEFAULT не соответствует
     /var/spool/mail/$LOGNAME и procmail доставляет в $DEFAULT)
    /usr/sbin/sendmail
    программа пересылки почты по умолчанию
    _????`hostname`
    временные "уникальные" файлы нулевой длины создаваемые procmail
     

    СМОТРИ ТАКЖЕ

    procmailrc(5), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1), mailx(1), binmail(1), uucp(1), aliases(5), sendmail(8), egrep(1), grep(1), biff(1), comsat(8), lockfile(1), formail(1), cron(1)  

    ДИАГНОСТИКА

    Autoforwarding mailbox found
    Системный почтовый ящик имеет установленный suid или sgid бит. Procmail завершит работу с кодом возврата EX_NOUSER, подразумевая, что в этот почтовый ящик почта доставляться не должна.
    Bad substitution of "x"
    Задано неверное имя переменной окружения.
    Closing brace unexpected
    Отсутствует соответствующая открывающая скобка (вложенный блок).
    Conflicting options
    Конфликтующие комбинации опций.
    Conflicting "x" suppressed
    Флаг "х" не совместим с некоторыми другими флагами в данных правилах.
    Couldn't create "x"
    Системный почтовый ящик отсутствует и не может быть создан.
    Couldn't create maildir part "x"
    В почтовом каталоге "х" отсутствуют один или более необходимых подкаталогов и procmail не в состоянии создать их.
    Couldn't create or rename temp file "x"
    Произошла ошибка при доставке в каталог "х".
    Couldn't determine implicit lockfile from "x"
    Не обнаружено редиректоров типа `>>', используется обычный `$LOCKEXT', как файл локальной блокировки.
    Couldn't read "x"
    Procmail не в состоянии открыть файл конфигурации, либо это не постоянный файл или procmail не в состоянии открыть MH-каталог для поиска файла с наивысшей нумерацией.
    Couldn't unlock "x"
    Файл блокировки уже существует или недостаточно прав доступа на запись в каталог с этим файлом.
    Deadlock attempted on "x"
    Файл блокировки, указанный в настройках, аналогичен ещё активному $LOCKFILE.
    Denying special privileges for "x"
    Procmail не принимает идентификатор файла конфигурации, так как обнаружено нарушение защиты (например, -p или переназначение переменной в командной строке) или у procmail недостаточно привилегий для выполнения этого.
    Descriptor "x" was not open
    Procmail запущен, но нет подключения в stdin, stdout или stderr (возможно попытка нарушить защиту).
    Enforcing stricter permissions on "x"
    Системный почтовый ящик получателя имел нарушения в защите, procmail восстановил защиту.
    Error while writing to "x"
    Несуществующий каталог, нет прав на запись, конвейер разрушен или переполнение диска.
    Exceeded LINEBUF
    Обнаружено переполнение буфера, слишком маленький LINEBUF, установлен PROCMAIL_OVERFLOW.
    MAILDIR is not an absolute path
    MAILDIR не является абсолютным путём.
    MAILDIR path too long
    Слишком длинный путь MAILDIR.
    ORGMAIL is not an absolute path
    ORGMAIL не является абсолютным путём.
    ORGMAIL path too long
    Слишком длинный путь ORGMAIL.
    default rcfile is not an absolute path
    Файл конфигурации по умолчанию не является абсолютным путём.
    default rcfile path too long
    Указанный путь к файлу конфигурации в развёрнутом виде длиннее, чем LINEBUF или не запущен с разделителем файла.
    Excessive output quenched from "x"
    Программа или фильтр "х" пытается воспроизвести слишком много исходящей информации для текущего LINEBUF, остальное будет отвергнуто и будет установлен PROCMAIL_OVERFLOW.
    Extraneous x ignored
    Строка действия или другой флаг в правиле делают флаг "х" бесполезным.
    Failed forking "x"
    Таблица процессов заполнена (и исчерпан NORESRETRY).
    Failed to execute "x"
    Программа отсутствует в пути или не может быть выполнена.
    Forced unlock denied on "x"
    Отсутствуют права доступа на запись в каталог в котором находится файл_блокировки "х" или более чем один procmail пытается в настоящий момент установить блокировку.
    Forcing lock on "x"
    файл_блокировки "x" должен быть принудительно удалён из-за превышения времени ожидания (смотри также LOCKTIMEOUT).
    Incomplete recipe
    Начало правила найдено, но непонятен EOF.
    Insufficient privileges
    Либо для procmail необходимы привилегии супер-пользователя, либо должен быть правильный (e)uid и (e)gid для запуска в режиме доставки. Почта будет отброшена.
    Invalid regexp "x"
    Регулярное выражение "х" содержит ошибки (скорее всего что-то отсутствует или что-то лишнее).
    Kernel-lock failed
    При попытке использования вызовов блокировки ядра один из них закончился неудачно (обычно обозначает ошибку ОС), procmail игнорирует эту ошибку и продолжит обработку.
    Kernel-unlock failed
    Смотри выше.
    Lock failure on "x"
    Может возникать только если вы указали какое-то по настоящему нереальное (и недопустимое) имя файла блокировки или если файл_блокировки не может быть создан из-за недостаточных прав или не существующих подкаталогов.
    Lost "x"
    Procmail попытался клонировать себя, н не обнаружил файла конфигурации "х" (который был либо удалён, либо это был относительный путь и вы изменили каталог, с момента последнего открытия его procmail.
    Missing action
    Текущее правило оказалось неполным.
    Missing closing brace
    Вложенный блок начат, но не закончен (отсутствует соответствующая завершающая скобка).
    Missing name
    Опции -f необходим дополнительный аргумент.
    Missing argument
    Вы указали опцию , но забыли указать аргумент.
    Missing rcfile
    Вы указали опцию -m, procmail ожидает имя файла конфигурации как аргумент.
    Missing recipient
    Ву указали опцию -d или вызвали procmail под другим именем и он ожидает одного или более получателей как аргумент.
    No space left to finish writing "x"
    Файловая система содержащая "х" не имеет достаточно свободного места, допускающего доставку сообщения в файл.
    Out of memory
    Недостаток свободного места в свопе (и исчерпан NORESRETRY).
    Processing continued
    Непонятные опции в командной строке игнорированы, обработка производится как обычно.
    Program failure (nnn) of "x"
    Программа, запущенная procmail, возвратила nnn вместо EXIT_SUCCESS (=0); если nnn отрицательное, то это сигнализирует, что программа прекратила выполнение.
    Quota exceeded while writing "x"
    Квота на размер файла, для получателя на файловой системе "х", не позволяет осуществить доставку сообщения в файл.
    Renaming bogus "x" into "x"
    Обнаружен поддельный системный почтовый ящик получателя, procmail выполнил уклоняющий маневр.
    Rescue of unfiltered data succeeded/failed
    Фильтрация не удалась, procmail попытался вернуть оригинальный текст.
    Skipped: "x"
    Нечего делать с "х" в файле конфигурации (синтаксическая ошибка), игнорируется.
    Suspicious rcfile "x"
    Владелец файла конфигурации не является получателем или супер-пользователем, файл или каталог, содержащий этот файл, был доступен на запись всем, или это был файл конфигурации по умолчанию($HOME/.procmailrc) и он, либо каталог содержащий его, был доступен для записи всей группе (файл конфигурации не был использован).
    Terminating prematurely whilst waiting for ...
    Procmail получил сигнал во время ожидания ...
    Timeout, terminating "x"
    Превышено время ожидания программы или фильтра "х".
    Timeout, was waiting for "x"
    Превышено время ожидания программы, фильтра или файла "х". Если это была программа или фильтр, то он больше не будет выполнен.
    Truncated file to former size
    Файл не мог быть успешно доставлен, поэтому он был усечен до его прежнего размера.
    Truncating "x" and retrying lock
    "х" не выглядит подходящим именем файла или файл не пуст.
    Unable to treat as directory "x"
    Либо префикс к "х" должен обозначать, что это должен быть MH или maildir каталог, либо он приводился как второстепенный каталог для обращения, но уже существует и не является каталогом.
    Unexpected EOL
    Отсутствует завершающая кавычка или попытка выхода EOF.
    Unknown user "x"
    Указанный получатель не имеет соответствующего идентификатора пользователя (uin).
     

    РАСШИРЕННАЯ ДИАГНОСТИКА

    Расширенная диагностика может быть задействована установкой переменной VORBOSE.
    [pid] time & date
    Идентификатор процесса и временная метка procmail. Создаётся каждый раз, когда procmail регистрирует диагностику, если с момента создания последней временной метки прошла хотя бы секунда.
    Acquiring kernel-lock
    Procmail попытается использовать блокировку ядра для наиболее часто открываемого (дескриптора) файла.
    Assigning "x"
    Назначение переменной окружения.
    Assuming identity of the recipient, VERBOSE=off
    Сбрасывает все привилегии (если таковые имеются), полностью отключает расширенную диагностику.
    Bypassed locking "x"
    Каталог почтового спула оказался недоступен для procmail, это возлагается исключительно на блокировки ядра.
    Executing "x"
    Запускается программа "х". Если она запускается напрямую из procmail (без оболочки-посредника), procmail покажет аргументы, разделённые запятыми.
    HOST mismatched "x"
    Эта машина называется "х", HOST содержит что-то ещё.
    Locking "x"
    Создаётся файл блокировки "х".
    Linking to "x"
    Создаётся жёсткая ссылка между папками каталогов.
    Match on "x"
    Условие соответствует.
    Matched "x"
    Назначаем "х" равным MATCH.
    No match on "x"
    Условие не соответствует, настройки пропущены.
    Non-zero exitcode (nnn) by "x"
    Программа запущенная procmail как условие или как действие в конфигурации с флагом "W", вместо EXIT_SUCCESS (=0) возвратило nnn; использование указывает на то, что это не абсолютно неожиданное состояние.
    Notified comsat: "$LOGNAME@offset:file"
    Отправлено comsat/biff уведомление, что почта для пользователя $LOGNAME поступила со 'смещением' (offset) в 'файле'.
    Opening "x"
    "х" открыт для дополнения.
    Rcfile: "x"
    Файл конфигурации изменён в "х".
    Reiterating kernel-lock
    При переборе нескольких методов блокировки файлов, один из них завершился неудачей. Procmail будет повторять попытки до достижения положительного результата наиболее быстрым способом.
    Score: added newtotal "x"
    Это условие оценивает "добавленные" баллы, которые затем результатируются в балл "newtotal".
    Unlocking "x"
    Удаление файла блокировки "х".
     

    ПРЕДОСТЕРЕЖЕНИЯ

    Вы должны создавать сценарий оболочки, использующий файл блокировки (lockfile(1)), раньше, чем будет вызвана ваша почтовая оболочка для обработки любого почтового ящика, отличного от системного (пока, разумеется, ваша почтовая оболочка использует те же самые файлы блокировки (локальные или глобальные), определённые в вашем файле конфигурации).

    В случае возникновения ситуации, когда вам крайне необходимо уничтожить процесс procmail прежде, чем он закончит своё выполнение самостоятельно, сначала попробуйте воспользоваться обычной командой уничтожения (например, НЕ командой kill -9, для справки смотри подсекцию Сигналы), иначе некоторые файлы блокировок могут остаться неудалёнными.

    Остерегайтесь при использовании опции -t возникновения ситуации, когда procmail не в состоянии повторить доставку почты (например, по причине некорректно составленного файла конфигурации), что может привести к переполнению очереди почтовых сообщений подлежащих отправке. Это одинаково плохо, как для администратора, так и для пользователей.

    Файл /etc/procmailrc должен выполняться с привилегиями суперпользователя, поэтому будьте крайне осторожны с тем, что вы в нём указываете. Значение SHELL должно быть эквивалентно значению для получателя, поэтому, если procmail использует вызов командного интерпретатора, желательно побеспокоиться об установке безопасных значений заранее. Смотри также: DROPPRIVS.

    Имейте ввиду, если разрешено выполнение chown(1) над файлами в /etc/procmailrc/, то права владения на них могут быть изменены их владельцами на суперпользователя (root) (или ещё кого-либо). Для большей безопасности убедитесь, что права на выполнение в этом каталоге принадлежат суперпользователю.

    Procmail не является подходящим средством предоставления совместного доступа к одному почтовому ящику для нескольких пользователей, например, когда у вас единая учётная запись POP для почты всего вашего домена. Вы можете сконфигурировать свой MTA так, чтобы он добавлял определённые заголовки в конверт письма, по которым Procmail будет определять для кого поступило данное сообщение, но в целом, это не лучший способ. Возможно, вы захотите исследовать таблицы виртуальных пользователей, предоставляемых вашим MTA, или проверить производительность функции "multidrop" у Fetchmail.  

    ОШИБКИ

    После принудительного удаления файла блокировки, procmail ожидает $SUSPEND секунд перед созданием нового файла блокировки, таким образом другой процесс не сможет по ошибке удалить заново созданный файл блокировки.

    Procmail использует постоянный сигнал TERMINATE для прерывания любого выполняемого фильтра, но он не проверяет, отреагировал фильтр на этот сигнал или нет. Вдобавок, сигнал посылается непосредственно фильтру, но не его потомкам.

    Продолженное поле Content-Length: обрабатывается некорректно.

    Новые строки в продолженных заголовках при совпадении пропускаются, вместо того, чтобы обрабатываться как единая строка, каковыми они и являются.  

    ПРОЧЕЕ

    Если в заголовке сообщения имеется поле Content-Length, но не указана опция -Y, procmail обрежет поле для соответствия правильному размеру. Procmail не изменяет размер поля.

    Если в заголовке сообщения не имеется поля Content-Length или указана опция -Y и procmail добавит сообщение к почтовому ящику, то любые строки в теле сообщения похожие на заголовки, будут предварены символом ">" (обезопасив, тем самым, поддельные заголовки). Для поиска таких заголовков подходит следущее регулярное выражение:

    `\nFrom '
    Если в /etc/passwd отсутствует имя получателя, используемое в режиме непосредственной доставки, procmail производит обработку так, как будто режим непосредственной доставки не задействован. Если не используется непосредственной режим доставки и procmail выполняется с uid не имеющим соответствующей записи в /etc/passwd, то HOME по умолчанию устанавливается равным /, LOGNAME по умолчанию #uid, SHELL по умолчанию /bin/sh и ORGMAIL по умолчанию /var/run/dead.letter.

    Если при работе в режиме непосредственной доставки отсутствует строка заголовка "From", то procmail создаст её сам. Если имеется хотя бы один, то procmail оставит его в неприкосновенности. Если procmail вызван пользователем, не принадлежащим к группе root или mail, но должен создать или обработать новую строку "From", то он создаёт дополнительную строку "From" для того, чтобы было легче отличить поддельное сообщение.

    В целях безопасности procmail использует абсолютный $HOME-зависящий файл конфигурации, принадлежащий получателю или супер-пользователю (root), недоступный для записи никому, кроме владельца, с домашним каталогом, также недоступным для записи никому, кроме владельца. $HOME/.procmailrc также имеет дополнительные ограничения по доступу на запись для группы и не должен находиться в каталоге, доступном на запись для группы.

    Если /var/spool/mail/$LOGNAME является поддельным почтовым ящиком (например, не принадлежит получателю, недоступен для записи, является символической или жесткой ссылкой), procmail ещё до начала работы переименует его в "BOGUS.$LOGNAME.", оканчивающийся в inode-sequence-code. Если это отключить невозможно, ORGMAIL не будет иметь начального значения и следовательно запретит доставку без правильного файла конфигурации.

    Если /var/spool/mail/$LOGNAME является допустимым почтовым ящиком, но при этом имеет слишком слабые ограничения для доступа к нему, то procmail попытается исправить эту ситуацию. Чтобы этого избежать убедитесь, что имеете установленные биты u+x.

    Если производится доставка в каталоги, MH-каталоги или каталоги maildir, ву вас нет необходимости в использовании файлов блокировки, для предотвращения запуска нескольких копий procmail одновременно.

    Доставка в MH-каталоги отнимает несколько большее время, чем доставка в обычные каталоги или почтовые ящики, так как procmail вынужден отыскивать следующий доступный номер (вместо использования первого же доступного имени файла).

    В общих случаях, если не указана опция -t, procmail при ошибке возвращает EX_CANTCREAT, в противном случае - EX_TEMPFAIL.

    Для того, чтобы сделать "просеивание" заголовков более непротиворечивым, procmail связывает все длинные поля заголовков, но только для внутреннего использования. При дальнейшей доставке почты поля разбиваются также, как и ранее.

    Если procmail вызывается с именем не начинающемся с "procmail" (например, если он слинкован с другим именем и вызван также), то он переходит в режим непосредственной доставки и ожидает имена получателей как аргументы командной строки (как будто было указано -d).

    Comsat/biff уведомления выполнены с использованием udp. Они отсылаются единожды, когда procmail создаёт правильную запись в файле журнала. Уведомление имеет следующий развёрнутый формат (насколько это вообще возможно, когда доставка производится не в файл):

       $LOGNAME@смещение_сообщения_в_почтовом_ящике:абсолютный_путь_к_почтовому_ящику
    

    Каждый раз, когда сам procmail открывает файл для доставки, то он использует ядерные блокировки fcntl(2).

    Procmail является NFS-устойчивым и не имеет проблем с 8-ым битом.  

    ПРИМЕЧАНИЯ

    Вызов procmail с -h или -? опциями приведёт к отображению справки командной строки и короткой справки конфигурационных флагов.

    Имеется превосходный FAQ для новичков о почтовых фильтрах (и procmail в частности); его ведёт Nancy McGough <nancym@ii.com> и его можно получить отправив сообщение по адресу mail-server@rtfm.mit.edu со следующим содержимым:

    send usenet/news.answers/mail/filtering-faq

    Вместо использования системного вызова procmail, в момент прибытия почты, вы можете управлять вызовом procmail самостоятельно. В этом случае, ваш $HOME/.forward (убедитесь, чтобы он был доступен всем для чтения) должен содержать строку, указанную ниже. Убедитесь, что вы включили двойные и одинарные кавычки, и если на вашем сайте используется smrsh (the SendMail Restricted SHell), это должен быть абсолютный путь.

    "|exec /usr/bin/procmail"

    Procmail также может быть вызван для последующей обработки заполненного системного почтового ящика. Это может быть полезно не хотите или не можете использовать файл $HOME/.forward (в этом случае периодически вызывается нижеследующий сценарий из cron(1), или когда вы приступаете к чтению почты):

    #!/bin/sh
    
    ORGMAIL=/var/spool/mail/$LOGNAME
    
    if cd $HOME &&
      test -s $ORGMAIL &&
      lockfile -r0 -l1024 .newmail.lock 2>/dev/null
      then
      trap "rm -f .newmail.lock" 1 2 3 13 15
      umask 077
      lockfile -l1024 -ml
      cat $ORGMAIL >>.newmail &&
      cat /dev/null >$ORGMAIL
      lockfile -mu
      formail -s procmail <.newmail &&
      rm -f .newmail
      rm -f .newmail.lock
    fi
    exit 0
    
    Пример маленького $HOME/.procmailrc
    PATH=/bin:/usr/bin:/usr/bin
    MAILDIR=$HOME/Mail      #you'd better make sure it exists
    DEFAULT=$MAILDIR/mbox   #completely optional
    LOGFILE=$MAILDIR/from   #recommended
    
    :0:
    * ^From.*berg
    from_me
    
    :0
    * ^Subject:.*Flame
    /dev/null
    

    Другие примеры содержимого файла конфигурации можно найти на страницах руководства пользователя procmailex(5).  

    ИСХОДНЫЕ ТЕКСТЫ

    Эта программа является частью procmail mail-processing-package (v3.22) доступного по адресу http://www.procmail.org/ или ftp.procmail.org in pub/procmail/.  

    СПИСОК РАССЫЛКИ

    Для вопросов относящихся к любой программе, входящей в пакет procmail существуют следующие списки рассылки:
    <procmail-users@procmail.org>
    для вопросов/ответов.
    <procmail-users-request@procmail.org>
    для запросов подписки.

    Если вы желаете быть в курсе относительно новых версий и официальных патчей, отправьте запрос о подписке по адресу .RS procmail-announce-request@procmail.org (этот лист рассылки работает в режиме "только для чтения").  

    АВТОРЫ

    Stephen R. van den Berg
    <srb@cuci.nl>
    Philip A. Guenther
    <guenther@sendmail.com>
    Перевод: Aleksandr Blokhin <sass@altlinux.ru>


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    Сигналы
    ОПЦИИ
    АРГУМЕНТЫ
    ПРИМЕРЫ
    ФАЙЛЫ
    СМОТРИ ТАКЖЕ
    ДИАГНОСТИКА
    РАСШИРЕННАЯ ДИАГНОСТИКА
    ПРЕДОСТЕРЕЖЕНИЯ
    ОШИБКИ
    ПРОЧЕЕ
    ПРИМЕЧАНИЯ
    ИСХОДНЫЕ ТЕКСТЫ
    СПИСОК РАССЫЛКИ
    АВТОРЫ


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру