![]() |
|
Модераторы: marykone |
![]()
|
|
| Glen |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 15.1.2010 Репутация: нет Всего: нет |
Как ДОЛЖЕН работать POP3 в случае если несколько клиентских сессий одновременно хотят работать с одним и тем же ящиком? RFC 1939 говорит "Once the POP3 server has determined through the use of any authentication command that the client should be given access to the appropriate maildrop, the POP3 server then acquires an exclusive-access lock on the maildrop, as necessary to prevent messages from being modified or removed before the session enters the UPDATE state".
Но вот я попробовал на имеющемся у меня POP3-сервере - никто не мешает второй сессии получить доступ и работать с ящиком (включая удаление писем). Это что, какое-то расширение? Если да, то где оно специфицировано? Какие тут возможны проблемы? Например: если Сессия#1 хочет читать письмо #N, а оно уже удалено Сессией#2 - что произойдёт? Или: Сессия#1 прочитала письмо #N, хочет его удалить - а за это время Сессия#2 удалила письмо #(N-1), и все номера писем 'сдвинулись'. Какое в действительности письмо будет удалено когда Сессия#1 выдаст команду DELE #N? |
|||
|
||||
| marykone |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2722 Регистрация: 2.5.2006 Где: Краснодар Репутация: 24 Всего: 67 |
Glen, посмотрите в сторону imap
-------------------- получил ответ, пометь вопрос как решенный (правый верхний угол вашей темы). |
|||
|
||||
| WolfAlone |
|
|||
![]() В экстазе ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1010 Регистрация: 16.9.2008 Где: Рай Репутация: -1 Всего: 5 |
Уважаемый Glen! По моему, номера писем не сдвигаются никаким образом, до конца всех активных сессий, то есть, если Вы будете использовать, например, 1-у сессию, в ящике будет 5 писем, вы удалите письмо №2, то второй раз удалить письмо №2 в этой же сессии не получиться! Т.к. оно уже удалено и будут письма только за номерами 1, 3, 4, 5! Если сессия #1 удалило письмо №3, а сессия #2 попытается его прочесть - думаю сервер всего-навсего выдаст ошибку.
По поводу спецификации - по моему это нигде не специфицировано (по крайней мере я не видел). По поводу сессий >1 - не каждый почтовый сервер позволяет работать с ящиком, в несколько сессий одновременно. Из личного опыта: Хреновые почтовые клиенты, при обрыве связи могут получать одни и те же письма, повторно, нормальные - получают только не полученные письма. Исходя из этого, можно предположить, что письма не удаляются с сервера во время активной сессии, удаление происходит только после нормального завершения соединения. По этому, как вариант если сессия 1 удалит письмо №3, а сессия 2 запросит его - то она его получит как ни в чем не бывало! (*КАК ВАРИАНТ!) Хотя, главной мыслью в этом монологе, считаю то, что - ПО часто строиться по принципу совместимости, а не единых стандартов. То есть, если почтовая программа может получать письма с сервера - значит сервер рабочий. Если 2 программы могут одновременно получать письма с сервера (одного ящика) - от этого быть рабочим он не перестает! И соответственно, каждый сервер может вести себя по своему... Думаю оптимальным вариантом в Вашем случае будет взять локальный почтовый сервер, прислать на него с 10ок писем мегабайт по 10-100, взять какой-нибудь прокси, ограничить в нем скорость до 1Кб, и попробовать получать/удалять и т.д. одно и то же письмо (письма) с одного и того же ящика. Таким образом Вы выясните, как будет вести себя именно этот сервер в некоторых случаях. -------------------- И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!" Ф топку Ubuntu, Debian наше фсё! (с) Евгений Вольф |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Сетевые технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |