www.eserv.ru // Docs/Eserv/MailServer/Pop3Recv

oldwiki /2003-06-05 16:54/ (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
News
15.05.2012
Eserv504
15.05.2012
ActiveSync
01.04.2012
Eproxy508
25.03.2012
Eserv503
26.02.2012
Eserv502
08.02.2012
UMI.CMS
22.12.2011
Eserv431
20.12.2011
Eproxy507
15.11.2011
Eproxy506
19.09.2011
Eproxy505
08.09.2011
Eserv430
07.09.2011
Lightning
19.07.2011
PoweredBy
16.07.2011
IPv6
08.07.2011
Eproxy5beta1
17.06.2011
IPv6DNS
13.06.2011
IPv6Mail
21.03.2011
Eserv428
22.10.2010
Eserv426
22.10.2010
SSL
22.04.2010
Eserv423
20.04.2010
Eserv4WhatsNew
19.04.2010
EservLDAP
19.04.2010
EservDHCP
19.04.2010
EservRubricator
08.04.2010
EservDNS
08.04.2010
NSСI
08.04.2010
WPAD
27.03.2010
Eserv422
27.03.2010
Eserv4Docs
26.03.2010
Eserv4FAQ
21.03.2010
EservIrc
05.03.2010
Eserv421
05.03.2010
HttpProxy
02.03.2010
EservVideo
02.12.2009
Eserv4Wiki
02.12.2009
Eserv4acWEB
02.12.2009
PopPull
22.11.2009
PigMailPigProxy2/WhatsNew
22.11.2009
PigMail/WhatsNew
23.09.2009
FossilEservHowTo
22.09.2009
SourceCodeManagement
22.09.2009
FossilScm
16.09.2009
SendEmail
08.09.2009
RoundCube
07.05.2009
GitScm
07.05.2009
GitEservHowTo
06.05.2009
SunBird

pop3recv.exe

Задача агента pop3recv.exe — обратиться к удалённому почтовому серверу, подключиться к почтовому ящику и принять его содержимое для дальнейшей обработки почтовым сервером Eserv. Это так называемое консольное приложение — программа, полностью управляемая с помощью командной строки, режима, унаследованного от старых времён, не слишком удобного в повседневной работе, но крайне полезного при создании автоматизированных систем типа "установил и забыл". Агент pop3recv "понимает" следующие параметры (иначе называемые ключами) командной строки:

-s сервер


С помощью ключа -s агенту передаётся имя или IP-адрес POP3-сервера, на котором хранится подлежащий опросу почтовый ящик.

-p порт


Ключ -p используется для указания номера порта, на котором работает нужный POP3-сервер. Стандартное значение 110, на этом порту работают все общедоступные и подавляющее большинство корпоративных почтовых серверов. Причиной перевода сервера на нестандартный порт могут быть только соображения сугубой секретности. В этом случае Вам, как пользователю такого сервера, номер порта должен быть известен. Если же используется стандартный номер порта, то ключ -p можно не задавать.

-u имя


Ключ -u задаёт имя учётной записи опрашиваемого почтового ящика. Как правило, оно совпадает с левой частью (до разделителя @) сопоставленного ящику почтового адреса — например, адресу vasya@mail.ru гарантированно соответствует имя учётной записи vasya. Но это именно как правило — бывает, что они не совпадают.

-w пароль


Ключ -w задаёт пароль для доступа к опрашиваемому почтовому ящику.

-o файл


Ключ -o задаёт имя файла, в который записывается выходная информация — это, по сути, полный протокол общения агента с POP3-сервером. По умолчанию весь вывод направляется в консольное окно, точнее — в стандартный поток вывода, так что его можно передать для обработки другому приложению, но для нашей задачи наилучшим решением будет сохранить его в файл. Этот файл затем будет передан для обработки агенту erobot, который разберёт его на отдельные сообщения. Желательно для каждого запуска агента задавать уникальное имя файла — тогда история подключений сохраняется для последующего анализа. При вызове агента из Планировщика для генерации уникальных имён используются специальные макропараметры Eserv %TempFile% и %PrevTempFile%. Подробное описание этих и других параметров приведено в главе, посвящённой Планировщику.

-env


С помощью ключа -env можно получить выходной файл в специальном формате — его можно открыть с помощью Outlook Express так, словно это одно большое письмо, при этом все принятые почтовые сообщения будут представлены в виде вложенных файлов. Правда, в этом случае файл не пройдёт последующую обработку агентом erobot.exe.

-d


Ключ -d побуждает агента удалять с POP3-сервера загруженные сообщения. Это наиболее распространённый режим работы. Однако иногда удаление сообщений нежелательно — случается, что почту из одного и того же ящика должны получать несколько пользователей (например, несколько удалённых друг от друга филиалов одной организации). В этом случае достаточно не указывать ключ -d, а для предотвращения повторного приёма уже однажды принятых сообщений использовать ключ -uidl. И, естественно, принять меры по предотвращению переполнения почтового ящика.

-uidl


Для распознавания уже однажды принятых сообщений в протоколе POP3 предусмотрен специальный механизм уникальных идентификаторов — UIDL. Каждом сообщению, хранящемуся в почтовом ящике, сервер сопоставляет некое число. Почтовый клиент при подключении к серверу может запросить идентификаторы всех сообщений и, проанализировав их, принять решение, какие сообщения следует принимать, а какие нет. Этот режим работы pop3recv задаётся указанием в командной строке ключа -uidl.
Список идентификаторов UIDL принятых сообщений сохраняется в файле pop3msgids.txt, который агент создаёт в каталоге temp. Поскольку по истечении какого-то периода времени почтовый сервер начнёт выдавать уже использованные идентификаторы (это срок неопределённый, зависящий как от программного обеспечения сервера, так и от интенсивности его работы, но заведомо конечный), список необходимо регулярно очищать — иначе непрочитанные письма либо останутся лежать на сервере, либо агент их удалит, не принимая. Разумнее всего очистку списка совмещать с очисткой опрашиваемого почтового ящика — если обычно Вы не используете ключ -d.

-dial


По умолчанию pop3recv не предпринимает никаких дополнительных действий по установлению соединения с Интернетом — он немедленно пытается обратиться к заданному серверу. Если Вы подключены к всемирной сети по выделенной линии, больше ничего и не требуется. Если же Вы используете модемное подключение, то при отсутствии связи попытка получения почты закончится неудачей. Можно, конечно, использовать эту особенность, чтобы не дёргать модем без надобности — когда соединение будет установлено для других целей, запущенный в это время агент воспользуется им и получит почту. Однако желательно, чтобы почта обрабатывалась независимо от настроения пользователей — раз в несколько часов, даже раз в сутки, но письма из почтового ящика необходимо вынуть. Кроме того, может случиться так, что модемное соединение как было установлено "по щучьему велению", будет так же и разорвано до завершения приёма почты. При использовании ключа -dial агент обращается к серверу дозвона Eserv и запрашивает установку соединения, а по завершении сессии сообщает, что соединение более не нужно. Уменьшения же количества звонков к провайдеру при отсутствии активной работы в Интернете можно добиться тонкой настройкой задания в Планировщике.

-to тайм-аут


Ключ -to задаёт время ожидания ответов от почтового сервера. Значение задаётся в секундах и по умолчанию составляет несколько минут — величина, как правило, вполне достаточная. Однако при работе на очень плохих линиях она может оказаться недостаточной, тогда можно задать значение побольше.

-z


При грамотном выборе интервала запуска агента почтовая сессия успевает завершиться до очередного запуска. Но случается (обычно при модемном способе подключения по телефонным линиям низкого качества), что объём сообщений в почтовом ящике превышает некую критическую величину, и тогда агент запускается до того, как отработало предыдущее задание. Большинство POP3-серверов (Eserv относится к этому большинству) не допускают несколько параллельных подключений к одному почтовому ящику, так что поспешившему агенту придётся уйти не солоно хлебавши. Однако существуют и те, что идут не в ногу — например, Exchange Server допускает параллельные подключения. В таком случае повторно запустившийся агент начнёт повторно принимать содержимое почтового ящика (ведь, в соответствии со стандартом POP3 сообщения из ящика удаляются только после отключения пользователя), увеличивая трафик и забирая дефицитную пропускную способность канала связи. Два агента параллельно работают медленнее, чем один, поэтому почти наверняка дойдёт дело и до третьей, и до четвёртой копии. Кончается это либо полным истощением ресурсов системы с последующим повисанием, либо исчерпанием пропускной способности линии. Экспериментально установлено, что семь параллельно работающих pop3recv полностью забивают модемную линию 33,6 килобит/с. Для предотвращения неприятностей можно использовать ключ -z — при его использовании pop3recv, обнаружив в момент запуска уже работающую копию, немедленно завершает работу. Правда, могут возникнуть проблемы с другой стороны — если настроено несколько заданий на опрос нескольких почтовых ящиков, часть из них будет опрошена не при каждом запуске, а если они все настроены на одновременный запуск, то пропуски будут практически постоянными. Эта проблема решается написанием одного командного (BAT или CMD-файла), выполняющего последовательный опрос всех нужных почтовых ящиков, и запуск его как единого задания — подробно об этом читайте в главе, посвящённой Планировщику.

-ps сервер


Хорошо, когда POP3-сервер доступен безо всяких ухищрений. Однако нередко случается и так, что провайдер предоставляет подключение только через прокси-сервер, а нужный почтовый сервер находится "по ту сторону". При этом далеко не всякий прокси-сервер способен обрабатывать протокол POP3, и далеко не всякий провайдер использует такие "умные" программы. В таком случае единственная возможность добраться до нужного почтового сервера — использование протокола HTTPS. Ключ -ps используется для указания имени прокси-сервера провайдера.

-pp порт


При использовании прокси-сервера провайдера ключ -pp позволяет указать номер порта, на котором работает прокси-сервер. Значение по умолчанию 3128, большинство провайдерских прокси-серверов используют именно его.

-ln число


Обычно pop3recv помещает в панель задач рядом с часами значок в виде конверта. Щелчок мыши по этому значку открывает окно, в котором видны все детали общения агента с почтовым сервером. Объём окна достаточно велик — 30000 строк. Для хранения такого количества информации требуется большой объём памяти, даже система иногда не выдерживает — при завершении работы агента в этом случае возникает программная ошибка. С помощью ключа -ln размер окна можно уменьшить до приемлемой величины.

-dw


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

-q

Закрытие окна протокола — щелчком мыши по крестику или вводом с клавиатуры Alt+F4 — приводит к завершению работы агента. По умолчанию выполняется быстрый выход — никаких команд или данных почтовому серверу не посылается, поэтому при следующем подключении возможен повторный приём уже загруженных сообщений. Если в командной строке pop3recv присутствует ключ -q, то агент и в случае ручного прерывания сеанса выполняет предписанную протоколом процедуру завершения связи, чтобы POP3-сервер освободил почтовый ящик и удалил уже принятые письма.

Вернуться к описанию почтового сервера
Вернуться к содержанию
Работает на Eserv/7.0.beta1/Linux/arm64 (Dec 25 2023)