В модуле POP CommuniGate Pro реализован функционал сервера по протоколу POP3. POP3 сервера позволяют клиентским приложениям (почтовым программам) получать сообщения из папок пользователя, используя Интернет протокол POP3 (STD0053, RFC1939, RFC1734, RFC1725) через TCP/IP сети.

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

Протокол почтового отделения (POP3)

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

Протокол POP3 не может работать с пользователями, у которых есть несколько папок. Если клиентское приложение представляется пользователем, у которого есть несколько папок, то будет открываться папка INBOX.

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

Модуль POP поддерживает расширение POP-протокола XTND XMIT. Это расширение позволяет пользователям использовать POP-протокол для отправки сообщений вместо SMTP-протокола.

Настройка модуля POP

Чтобы настроить параметры модуля POP, используйте веб-интерфейс администратора. Откройте страницу “доступ” в разделе “установки”:

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

Записи, помещённые модулем POP в журнал работы сервера, имеют пометку “POP”.

Когда вы указываете ненулевое значение в настройке “максимальное число каналов”, модуль POP создаёт так называемый «приёмник». Модуль начинает принимать все POP-соединения, которые устанавливают клиенты, чтобы получать почту с вашего сервера. Эта настройка используется, чтобы ограничить число соединений, которое может обслуживать модуль POP одновременно. Если открыто предельное число соединений, модуль будет отказывать в приёме новых соединений. В этом случае почтовые клиенты должны попытаться соединиться позднее.

По умолчанию, приёмник модуля POP принимает незашифрованные соединения на TCP порт 110. Стандартным номером TCP-порта для безопасных POP-соединений является порт номер 995, однако, по умолчанию он отключён. Нажмите на ссылку “приёмник”, чтобы настроить порт приёмника POP.

Модуль POP поддерживает команду “STARTTLS”, которая позволяет почтовому клиенту устанавливать соединение в незащищённом режиме и затем переводить его в режим безопасного соединения.

Аутентификация пользователя

POP-модуль позволяет пользователям использовать все методы аутентификации, поддерживаемые сервером CommuniGate Pro, наряду с методом APOP.

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

Безопасный доступ

Модуль POP может использоваться для приёма SSL/TLS (зашифрованных) соединений от почтовых программ пользователя (смотрите комментарий о настройках приёмника выше). Дополнительно POP-модуль поддерживает команду “STLS”, которая позволяет клиентским почтовым программам устанавливать незащищённое, нешифрованное соединение (на стандартном TCP порту 110) и затем инициировать шифрование трафика по этому соединению.

Специальные возможности

В отличие от большинства почтовых серверов, POP-модуль CommuniGate Pro не «блокирует» папку, которую он открывает по требованию клиентской почтовой программы. Открытая папка может одновременно использоваться другими клиентскими приложениями. Дополнительную информацию смотрите в разделе “папки”.

Так как протокол POP3 не предназначался использования таким образом, то модуль POP CommuniGate Pro:

  • показывает только те сообщения в папке, которые существовали на момент открытия папки клиентской почтовой программой; все новые сообщения, полученные в течение сессии, будут видны POP-клиенту только при его следующем соединении с папкой;

  • сохраняет зомби-сообщения вместо сообщений, удалённых в текущей сессии; модуль показывает их как сообщения, имеющие нулевой размер, и выдаёт ошибку, если клиентское приложение пытается загрузить удалённое сообщение;

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

В модуле POP реализована также команда «пустой AUTH» (команда AUTH без параметров), которая возвращает список поддерживаемых методов SASL.

Расширения XTND XMIT

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

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

Предупреждения

В POP3-протоколе не предусмотрена возможность отправки клиентской почтовой программе предупреждений. Если пользователя ожидает какое-нибудь предупреждающее сообщение, то POP-модуль CommuniGate Pro просто отвергает запрос на установление соединение после аутентификации пользователя.

В возвращаемой ошибке содержится текст предупреждения:

ALERT: текст предупреждающего сообщения

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

Доступ к дополнительным папкам

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

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

Имя пользователя
(указывается в настройках почтовой программы)

Папка, к которой предоставляется доступ

jsmith

папка INBOX у пользователя jsmith

private#jsmith

папка private у пользователя jsmith

lists/info#jsmith@client1.com

папка 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 с использованием соответствующего пароля.

Если аутентифицированный пользователь не имеет права удалять сообщения в выбранной папке, то операция “DELE” оканчивается неуспешно, и почтовой программе пользователя возвращается ошибка.

Модуль POP может также использовать возможность прямого обращения к папкам для открытия дополнительных папок.

Доступ к личной почте у объединенного пользователя

В модуле POP реализована фильтрация почты единого общедоменного пользователя. Как и все модули доступа, модуль POP использует маршрутизатор для обработки заданных имён пользователя.

Если в клиентской почтовой программе имя пользователя указано как abcdef@client1.com (как показано в этом примере), то маршрутизатор перенаправляет этот адрес на локального пользователя Cl1, и возвращает abcdef как локальную часть получившегося адреса.

Модуль POP проверяет локальную часть, возвращаемую маршрутизатором, и, если эта строка не пустая, то он фильтрует открываемую папку: модуль скрывает все сообщения в папке, которые не имеют поля заголовка X-Real-To (или другого поля, указанного в настройках модуля местной доставки) или не имеют указанной строки (индивидуального имени) в этом поле заголовка.

Таким образом, если пользователь указал имя как abcdef@client1.com, то только сообщения, которые изначально были направлены на этот адрес, будут доступны ему в папке пользователя CL1.

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

Пример:

Строка в маршрутизаторе:

client1.com = Cl1.local

Первое сообщение отправлено на адрес:

abcdef@client1.com

Оно сохраняется у пользователя Cl1 в папке INBOX с уникальным идентификатором 101, и в заголовок добавляется поле:

X-Real-To: abcdef

Следующее сообщение отправляется на адрес:

xyz@client1.com

Оно сохраняется в папке INBOX пользователя Cl1 с уникальным номером 102, и в заголовок добавляется поле:

X-Real-To: xyz

После того, как эти сообщения сохранены, POP-сессия будет показывать различные сообщения, в зависимости от указанного имени пользователя:

S: +OK CommuniGate Pro POP Server is ready
C: USER Cl1
S: +OK, send pass
C: PASS mypassword
S: +OK 2 message(s)
C: UIDL
S: +OK
S: 1 101
S: 2 102
S: .
C: QUIT
S: +OK bye-bye
S: +OK CommuniGate Pro POP Server is ready
C: USER abcdef@client1.com
S: +OK, send pass
C: PASS mypassword
S: +OK 1 message(s)
C: UIDL
S: +OK
S: 1 101
S: .
C: QUIT
S: +OK bye-bye
S: +OK CommuniGate Pro POP Server is ready
C: USER xyz@client1.com
S: +OK, send pass
C: PASS mypassword
S: +OK 1 message(s)
C: UIDL
S: +OK
S: 1 102
S: .
C: QUIT
S: +OK bye-bye
S: +OK CommuniGate Pro POP Server is ready
C: USER blahblah@client1.com
S: +OK, send pass
C: PASS mypassword
S: +OK 0 message(s)
C: UIDL
S: +OK
S: .
C: QUIT
S: +OK bye-bye