Редактирование .fetchmailrc

Редактирование .fetchmailrc

Если вы работаете с fetchmailconf, данная программа преобразует сделанные вами установки в записи, помещаемые в файл .fetchmailrc. Этот файл по умолчанию располагается в вашем рабочем каталоге. Очевидно, что структура файла отражает набор опций, предоставляемых программой fetchmailconf. Пример содержимого файла .fetchmailrc приведен в листинге 11.3.

Листинг 11.3. Пример файла .fetchmailrc

# Fetchmail file for retrieving mail from mail.abigisp.net

# and imap.asmallisp.com

set postmaster rodsmith

set bouncemail

set daemon 1800

set syslog

poll mail.abigisp.net with proto POP3

 user rodericksmith there with password abc123

 is rodsmith here fetchall forcecr

 smtphost speaker.rodsbooks.com

poll imap.asmallisp.com with proto IMAP

 user rodsmith there with password A1B2C3

 is rodsmith here

Как и в других конфигурационных файлах, символ # является признаком комментариев, поэтому Fetchmail не обрабатывает первые две строки. Остальную часть листинга 11.3 можно условно разделить на две категории. Выражения set устанавливают глобальные опции, большинство из которых соответствуют опциям, содержащимся в разделе Fetchmail Run Controls диалогового окна Fetchmail Expert Configurator программы fetchmailconf (рис. 11.2). Многие из этих опций можно установить с помощью параметров командной строки. Кроме них, в листинге 11.3 содержатся два выражения poll, каждое из которых определяет учетную запись на удаленном компьютере, используемую для получения почты. При работе с программой fetchmailconf эта информация задается в диалоговых окнах Fetchmail Host Имя_узла и Fetchmail User Имя_пользователя Querying Имя_узла (рис. 11.3 и 11.4). Выражение poll может занимать несколько строк, причем специальный символ, указывающий на то, что выражение продолжается в другой строке, не требуется. Переход на новую строку может осуществляться в произвольных точках выражения.

Fetchmail поддерживает большое количество опций и в этом разделе невозможно обсудить их все. Исчерпывающую информацию об опциях данной программы вы можете получить на страницах справочной системы, посвященных Fetchmail, а также в других документах. Значением некоторых опций является строка символов (например, посредством опции может задаваться пользовательское имя). Если в строке содержатся пробелы, строка помещается в кавычки. Некоторые из наиболее важных глобальных опций описаны ниже.

• set postmaster имя_пользователя. Данная опция позволяет задать имя пользователя, который будет получать письма в случае, если определить адресата не удается. На это же имя будут приходить и некоторые сообщения об ошибках в работе программы. Как правило, в данной опции задается обычное пользовательское имя, но при желании вы можете указать postmaster или root. (При настройке сервера SMTP также задается пользователь postmaster, который получает сообщения, касающиеся работы почтовой системы. В роли postmaster для Fetchmail и сервера SMTP может выступать либо один и тот же, либо разные пользователи.) Значение данной опции можно изменить с помощью параметра командной строки --postmaster имя_пользователя.

• set bouncemail. Данная опция указывает на то, что сообщения об ошибках должны передаваться отправителям писем. Альтернативой set bouncemail является выражение set no bouncemail, в этом случае сообщения об ошибках будет получать пользователь postmaster, указанный при настройке Fetchmail.

• set daemon интервал. Эта опция сообщает о том, что программа Fetchmail должна выполняться в режиме демона и опрашивать почтовый сервер через заданные интервалы времени (значение интервала указывается в секундах). Если вы хотите, чтобы программа Fetchmail выполнялась в пакетном режиме, данная должна отсутствовать в конфигурационном файле. Переопределить значение опции set daemon можно, задавая в командной строке параметр --daemon интервал. Если при вызове Fetchmail указан параметр --daemon 0, это означает, что программа должна выполнить одну операцию, связанную с опросом сервера, даже если в .fetchmailrc задан режим демона.

• set logfile имя_файла. Данная опция указывает на то, что протокол работы программы Fetchmail должен записываться в файл с указанным именем.

• set syslog. Если вы хотите регистрировать действия Fetchmail в системном файле протокола, вы можете сделать это посредством данной опции.

В файле .fetchmailrc могут присутствовать выражения poll различной сложности. Формат данного выражения приведен ниже.

poll имя_сервера опции-сервера описание_пользователя

Ключевое слово server является синонимом poll. Вы также можете заменить его на skip, в результате чего Fetchmail пропустит данную запись. Таким способом вы можете временно исключить запись из рассмотрения, не удаляя ее из файла .fetchmailrc. Опции сервера определяют особенности взаимодействия Fetchmail с сервером, а в описании пользователя приводится информация об учетных записях на сервере и на локальном компьютере. В пределах каждой из категорий порядок следования записей не имеет значения, но чередовать записи, принадлежащие разным категориям, нельзя. (Именно этим вызвано большинство проблем, возникающих при редактировании файла .fetchmailrc вручную.) Слова and, with, has, wants и options игнорируются; не принимаются также во внимание символы ":", ";" и ",". Вы можете свободно использовать их в составе опций сервера или описания пользователя для того, чтобы сделать выражение poll более удобным для восприятия.

Некоторые из наиболее важных опций сервера приведены ниже.

• proto имя или protocol имя. Эти опции, являющиеся синонимами, определяют используемый протокол получения почты. В большинстве случаев в качестве имени указывается POP3 или IMAP, но Fetchmail также поддерживает и другие значения данной опции. Переопределить значение, заданное в файле .fetchmailrc, можно указав в командной строке параметр -p.

• interface интерфейс/IP-адрес/маска_подсети. Данная опция позволяет задать интерфейс, который должен быть активен в тот момент, когда Fetchmail опрашивает сервер. Для указания интерфейса используются имя устройства, например eth1 или ppp0, а также IP-адрес и маска подсети, которые определяют диапазон допустимых IP-адресов. Например, выражение eth1/192.168.1.0/255.255.255.0 означает, что перед тем, как Fetchmail предпримет попытку опроса сервера, с устройством eth1 компьютера должен быть связан адрес в диапазоне от 192.168.1.1 до 192.168.1.254. Аналогичные сведения можно предоставить программе с помощью опции -I, задаваемой в командной строке.

• monitor интерфейс. Данная опция указывает программе Fetchmail, выполняющейся в режиме демона, на то, что она должна проверять активность сетевого интерфейса. Если Fetchmail обнаружит, что после предыдущего опроса интерфейс стал неактивен, она пропустит очередной планируемый опрос. Значение опции может быть переопределено путем указания в командной строке опции -М.

Ниже перечислены опции, наиболее часто применяющиеся в описании пользователя.

• user имя или username имя. Эта опция задает пользовательское имя и обычно помечает начало описания пользователя в выражении poll. Как правило, данная опция определяет имя на удаленном узле, но если она сопровождается ключевым словом here, предполагается локальное имя. Ключевое слово there подтверждает тот факт, что имя зарегистрировано на удаленном компьютере. Опция -u в командной строке переопределяет значение данной опции.

• pass пароль или password пароль. Эта опция определяет пароль, соответствующий учетной записи сервера получения почты. Пароль хранится в конфигурационном файле в незашифрованном виде.

• is имя или to имя. Эти опции связывают учетную запись на сервере с локальным пользователем. Одна из этих опций указывается после описания учетной записи на сервере получения (т.е. после выражения user имя with pass пароль). Если удаленная учетная запись указывается перед локальной, ключевое слово here, заданное после данной опции, идентифицирует учетную запись как локальную. Ключевое слово there задает удаленную учетную запись.

• smtphost имя_узла. В обычных условиях программа Fetchmail пытается использовать для передачи почты компьютер, на котором она выполняется, т.е. узел с адресом localhost. Данная опция указывает на то, что почтовый сервер, посредством которого должны передаваться сообщения, находится на компьютере с заданным именем. Вы можете указать в качестве значения данной опции имя вашего компьютера. В этом случае в заголовках писем, переданных с помощью Fetchmail, вместо localhost будет содержаться обычное имя узла. Значение данной опции переопределяется с помощью опции -S, задаваемой в командной строке.

• keep. По умолчанию после получения сообщений Fetchmail удаляет их с сервера. Данная опция указывает на то, что сообщения должны сохраняться. Ее можно задавать, например, при тестировании новой конфигурации. Опция -k, введенная в командной строке, представляет собой альтернативу опции keep.

• fetchall. В обычных условиях Fetchmail не копирует сообщения, которые были получены ранее. Опция fetchall указывает на то, что должны быть получены все письма с сервера. Аналогичные действия выполняет опция -а, заданная в командной строке.

• forcecr. Строки почтовых сообщений должны оканчиваться парой символов CR/LF (возвратом каретки и переводом строки). Многие почтовые программы допускают отсутствие символа возврата каретки, поэтому подобные сообщения иногда встречаются в сети. Сервер передачи qmail отвергает такие сообщения; исправить положение позволяет опция forcecr.

Если вы зададите больше одного локального имени, Fetchmail будет анализировать заголовки писем и пытаться определить, кто является получателем конкретного сообщения. Например, если вы укажете локальные учетные записи jack и jill и если письмо поступает на имя jill, Fetchmail доставит его пользователю jill. Режим, в котором письма, поступающие на одну учетную запись, обрабатываются по-разному в зависимости от содержимого их заголовков, называют многоточечным (multidrop mode).

Совет

Доставку писем, обработанных с помощью Fetchmail, может выполнять грамма Procmail, которая будет описана в главе 19. Procmail предоставляет возможность идентифицировать и удалять нежелательные сообщения, распределять поступающие письма по папкам и выполнять другие подобные действия.