Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 6:

Протокол POP3

Применение fetchmail

После создания конфигурационного файла .fetchmailrc можно использовать программу fetchmail для получения сообщений электронной почты от сервера POP3. Для работы в интерактивном режиме все, что нужно для работы с ней, — это набрать в командной строке fetchmail. По этой команде fetchmail считывает конфигурационный файл и пытается зарегистрироваться на указанных в нем серверах. Затем она получает почту для заданных идентификаторов пользователя на локальный компьютер с ОС Linux. Управление fetchmail можно осуществлять, задавая в командной строке различные параметры. В табл. 6.2 приведены некоторые параметры, которые можно задавать в командной строке при использовании fetchmail для работы с сервером POP3.

Таблица 6.2. Параметры командной строки для fetchmail
Параметр Описание
-V Отображает версию fetchmail
-c Проверяет наличие почты в ящике без их загрузки на компьютер пользователя
-s Режим ожидания — без вывода на экран
-v Детальный режим — расширенный вывод на экран
-a Получать все сообщения с сервера
-k После получения сообщений сохранять на сервере их копии
-K Удалять сообщения с сервера после их получения (по умолчанию)
-F Сброс — удаление старых сообщений перед получением новых
-p Определяет протокол передачи
-U Использовать UIDL при идентификации сообщений
-P Использовать другой TCP-порт
-t Устанавливает величину интервала ожидания

Программу fetchmail можно использовать в качестве обычного процесса-демона в ОС Linux, задав частоту обращения к почтовому серверу в файле конфигурации. В этом случае fetchmail работает в фоновом режиме и регулярно проверяет почтовый ящик на наличие новых сообщений.

ОС Linux как сервер POP3

В ОС Linux реализована также поддержка сервера POP3, что позволяет создавать на сервере почтовые ящики, к которым будут обращаться за почтой удаленные пользователи. Каждый пользователь электронной почты для получения доступа к своему почтовому ящику должен иметь идентификатор пользователя. На сервере с ОС Linux программное обеспечение сервера POP3 запускается в фоновом режиме и наблюдает за установкой POP3-соединений. На рис. 6.6 представлена схема взаимодействия программного обеспечения сервера POP3 с операционной системой Linux, что позволяет удаленным пользователям обращаться к почтовым ящикам, хранящимся на сервере под управлением ОС Linux.

Почтовый сервер под управлением ОС Linux в качестве сервера POP3

Рис. 6.6. Почтовый сервер под управлением ОС Linux в качестве сервера POP3
Пакет ipopd

Пакет ipopd — программа для поддержки сервера POP3, используемая в ОС Linux по умолчанию. Программное обеспечение ipopd является частью проекта программного обеспечения по поддержке IMAP, разрабатываемого Вашингтонским университетом. В проект по созданию программного пакета IMAP входят реализации серверов POP3 и IMAP. Большинство версий ОС Linux включают это программное обеспечение в виде готового пакета. Текущая версия поставляемая с Red Hat 6.0 — imap 4.5-3.

Программа ipopd содержит реализацию обеих версий протокола POP3 и их предшественника — протокола POP2. Все новое клиентское программное обеспечение для работы с электронной почтой поддерживает протокол POP3, а протокол POP2 считается вышедшим из употребления. Программа для работы с POP3 называется ipop3d и вызывается программой inetd. В файле /etc/inetd.conf, вероятнее всего, имеется строка для вызова сервера POP3, но она может быть закомментирована. Эта строка выглядит примерно так:

pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

Как правило, программа ipop3d обычно устанавливается в каталог /usr/sbin.

Программа qpopper

Программа qpopper представляет собой реализацию сервера POP3. Она написана в университете Беркли (штат Калифорния), но в настоящее время ее распространением занимается компания Qualcomm. Программа qpopper поставляется с большинством версий ОС Linux, а ее последнюю версию (2.53) можно получить через Internet на Web-сайте компании Eudora по адресу: http://www.eudora.com/free/servers.html. Одно из существенных преимуществ qpopper перед ipopd — наличие поддержки соединений при помощи APOP с использованием специальной базы данных идентификаторов пользователя. Для запуска qpopper используется два загрузочных модуля — in.qpopper и popauth.

Программа in.qpopper пришла на смену ipop3d, которая ранее включалась в ОС Linux в качестве сервера POP3. Файл /etc/inetd.conf должен быть модифицирован соответствующим образом для запуска этой программы при установлении соединения с клиентом на TCP, порт 110. Строка в файле /etc/inetd.conf для включения qpopper выглядит следующим образом:

pop3 stream tcp nowait root /usr/sbin/tcpd in.qpopper

После этого следует перезапустить процесс inetd для того, чтобы программа in.qpopper смогла обслуживать соединения по протоколу POP3.

Программа popauth позволяет организовывать qpopper -соединения с клиентами при помощи APOP. Для этого с ее помощью создается база данных пользователей (файл /etc/pop.auth ), в которую можно добавлять и удалять идентификаторы пользователей. Для добавления идентификатора пользователя в базу данных используйте команду:

popauth -user username

Так вводятся новые пользователи в базу данных. Для удаления пользователей из базы данных задайте команду:

popauth -delete username

Чтобы получить список пользователей в базе данных, воспользуйтесь командой:

popauth -list

После того как идентификаторы пользователей занесены в базу данных pop.auth, любой из них может воспользоваться программой POP3, в которую встроена поддержка проверки подлинности пользователя с помощью APOP для подключения к серверу qpopper.

Философия почтового сервера

Обслуживание сервера электронной почты может быть довольно сложным. В многопользовательской среде администратору почтовой системы приходится порой принимать политические и философские решения для удержания системы электронной почты "на плаву". Правила обмена почтовыми сообщениями должны быть выработаны до того, как начнут страдать пользователи или сервер.

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

Один из методов решения этой проблемы — лимитирование дискового пространства, отводимого под каждый почтовый ящик. По достижении заданного администратором лимита пользователь не сможет принимать в свой ящик другие сообщения. Этот метод иногда очень трудно реализовать политически (попробуйте сказать боссу, что его лимит исчерпан!).

Существует еще одно решение данной проблемы. Можно сохранять сообщения, используя метод временной задержки. Это означает, что по прошествии нескольких дней прочитанные пользователем сообщения будут удаляться из почтового ящика. Такой метод иногда используется, хотя его реализация также связана с некоторыми трудностями.

Многие программы-клиенты POP3 способны работать с командой UIDL для идентификации сообщений в почтовом ящике. При этом они будут загружать пользователю только новые сообщения, сохраняя время их получения. К сожалению, не все клиенты POP3 (в основном более старые) поддерживают эту команду и, таким образом, каждый раз при соединении с сервером будут получать все сообщения — как новые, так и старые. Существует только один путь избежать этого — удалять сообщения с сервера после их получения клиентом. Однако это порождает другую проблему.

Довольно часто в последнее время компании разрешают своим работникам получать электронную почту как на рабочий ПК в офисе, так и на домашний ПК (см. "Поддержка удаленных клиентов" , "Поддержка удаленных клиентов"). Результатом этого является "разбиение" их почтовых ящиков на два отдельных ящика. Почта, полученная на домашний ПК, не может дублироваться на офисный ПК. Естественно, что такое положение вещей не удовлетворяет самих пользователей системы электронной почты.

Резюме

Передав почту посредством SMTP-сервера под управлением ОС Linux, пользователи должны иметь возможность получать ответы на свои сообщения. Для получения сообщений с почтового сервера на локальный ПК пользователя был разработан протокол почтового офиса версии 3 — POP3. Протокол POP3 не так универсален, как его более молодые собратья, но простота настройки и применения сделала его наиболее широко применяемым протоколом для обмена почтовыми сообщениями. Существует программное обеспечение, реализующее функции как клиента, так и сервера POP3 в ОС Linux. Программы ipopd и qpopper используются в ОС Linux для обеспечения работы сервера POP3. С их помощью пользователи могут подключаться к серверу и получать предназначенные для них сообщения электронной почты. С помощью программы fetchmail в ОС Linux можно реализовать функции клиента POP3 для получения почты от провайдера Internet. К сожалению, в протоколе POP3 имеются определенные ограничения. Однако сейчас разрабатываются альтернативные протоколы для получения электронной почты, которые были бы лишены недостатков POP3. Например, протокол IMAP, речь о котором пойдет в следующей лекции.

Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно