Почтовая система: модуль POP

Модуль POP почтовой системы это POP3 сервер. POP3 сервер позволяет клиентскому приложению (почтовой программе) получать почту с почтовой учетной записи используя POP3 протокол (STD0053,RFC1939, RFC1734, RFC1725) по сети TCP/IP.

Модуль POP нашей почтовой системы содержит несколько дополнений к этому протоколу, в том числе XTND XMIT . Некоторые почтовые программы могут использовать эти свойства при отсылке сообщений на Сервер почтовой системы.

Post Office Protocol (POP3)

Post Office Protocol позволяет компьютеру получать сообщения из почтовых ящиков сервера. Компьютер, на котором установлена почтовая программа, связывается с компьютером сервера и передает имя пользователя и пароль. Если доступ ему открывается, почтовая программа посылает команды протокола почтовому серверу. По этим командам сервер выдает список всех сообщений, пересылает выбранные сообщения или удаляет их. Когда сервер получает запрос на пересылку сообщения, он его полностью пересылает почтовой программе. Почтовый клиент может выбрать для получения только первую часть сообщения.

POP3 протокол не поддерживает учетные записи со многими ящиками. Если почтовая программа задает имя многоящичной учетной записи, открывается почтовый ящик INBOX.

Когда почтовая программа посылает команду на удаление сообщения из ящика, они не удаляются немедленно, а только отмечаются сервером на удаление. Только когда приложение нормально завершает сеанс связи, отмеченные сообщения удаляются. POP модуль нашей почтовой системы поддерживает XTND XMIT дополнения к POP протоколу. Эти дополнения позволяют пользователю посылать сообщения через POP протокол вместо SMTP протокола.


Проверка прав (authentication) пользователя

POP модуль позволяет пользователям использовать все методы проверки (аутентификации) поддерживаемые Сервером, в том числе и APOP метод.


Специальные свойства

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

Так как POP3 протокол не поддерживате эти возможности, POP модуль:

  • показывает только сообщения которые существовали в ящике на момент его открытия; все новые сообщения полученные в течении сессии будут показаны почтовой программой только при новой сессии;
  • сохраняет zombies для сообщений удаленных в текущей сессии; модуль показывает их как сообщения нулевого размера и выдает ошибку когда клиент пытается их получить;

Когда почтовая программа приниамет сообщение по команде RETR, сообщение отмечается флагом "Прочитанное" (это видно когда тот же почтовый ящик смотрится IMAP клиентом). Команда TOP, которая позволяет POP программе получать только первую часть сообщения не устанавливает флаг "Прочитано"


XTND XMIT дополнения

POP модуль работает с XTND XMIT протокольными дополнениями. Почтовые программы, которые поддерживают эти дополнения (например Eudora) могут отправлять сообщения на Сервер через POP соединение.

Это свойство может быть полезно для мобильных пользователей, которые иначе не смогут отправлять свою почту через наш SMTP сервер, закрытый для постороннего доступа. Отсылка писем по POP протоколу может быть более удобной, чем использование схемы с запоминанием адреса, так как здесь нет ограничений по времени.


Предупреждающие сообщения

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

ALERT: текст сообщения

После повторной попытки соединения будет выставлено следующее предупреждение, и так до тех пор, пока все предупреждающие сообщения не будут отправлены этому пользователю.


Доступ к дополнителным почтовым ящикам

В отличие от IMAP протокола, POP3 протокол был создан только для доступа к одному почтовому ящику - INBOX .

POP модуль нашей почтовой системы позволяет пользователю иметь доступ к любому ящику учетной записи определяя его имя как часть имени учетной записи. Для доступа к ящику mailboxname в учетной записи accountname, пользователь должен задать имя учетной записи в виде : mailboxname#accountname:

Имя учетной записи
(задается в настройках почтовой программы)
Доступ к ящику:
jsmith ящик INBOX в учетной записи jsmith
private#jsmith ящик private в учетной записи jsmith
lists/info#[email protected] ящик lists/info в учетной записи jsmith в домене client1.com

POP модуль позволяет пользователям иметь доступ к любому ящику в любой учетной записи

(чужие или разделяемые почтовые ящики) так же, как и к публичным почтовым ящикам.

Если пользователь может войти в учетную запись accountname и хочет иметь доступ к почтовому ящику mailboxname учетной записи otheraccount , он может задать имя учетной записи в виде : ~otheraccount/mailboxname#accountname:

Имя учетной записи
(задается в настройках почтовой программы)
Доступ к ящику
jsmith ящик INBOX учетной записи jsmith
~public/announces#jsmith публичный почтовый ящик announces
~boss/INBOX#jsmith ящик INBOX учетной записи boss
Во всех вышеприведенных примерах пользователь проверяется как jsmith, используя пароль учетной записи jsmith .

Если пользователь не имеет прав удалять сообщения в данном почтовом ящике, команда DELE не выполняется, и пользователю возвращается ошибка.