Как стать автором
Обновить

Комментарии 9

Для жесточайших гиков :-)
Пальцы загнуть можно конкретно :-) «Дай-ка телнета почту проверить» :-D
Я долго пользовался таким методом, но оказалось, что по POP3 команда LIST имеет ограничение в неcколько сотен писем :-( Когда инбокс перевалил за 300-400 писем, пришлось осваивать IMAP.

Спасибо за топик. Узнал кое-что новенькое.
А что за ограничение? По идее STAT должен показывать общее количество писем — и в скрипте потом это можно хендлить порционным фетчем :)
Я так глубоко не разбирался :-) Столкнулся с тем, что LIST выдаёт только 300-400 писем. Причём старых. Новые не видны. Меня это огорчило и я перешёл на IMAP.
Я чувствую, — вас есть решение? Спасибо!
О, попробовали сейчас — выдал максимум 700 из 14 000. Притом даты писем странные — чередуются старые, новые — в общем разброс очень большой. В RFC не написано про это. Видимо, моральная устарелость протокола имеет место быть :)

Алгоритм в целом правда ясен — получается что есть, потом список обновляется — но не в рамках одной сессии — и так до конца.
Возможно сказывается ограничение программы, которой подключаетесь. Она ждет пока не вычитает данные с сокета — потом обрывается если не увидела очередной порции данных в сокете. Почтовые клиенты, например, могут ожидать последовательность символов, указывающих на завершение комманды.
Можете повесить сниффер wireshark на POP порт и вытянуть почту вашим почтовым клиентом. Посмотрите что вернет LIST.
Фишка в том, что LIST через телнет отдаёт N писем и потом говорит — +ОК, — типа всё что есть — получите-распишитесь.

С коллегами пошушукались и без ярых вайршарк тестов решили, что бага эта известная (погуглив), и что почтовые клиенты просто получают письма пачками.

Если, например, сделать RETR — это письмо (не тестили глубоко, только по последнему ID) не появится в списке — ну и так пока письма не кончатся. То есть клиент потенциально делает проверочный LIST после полученной пачки писем.
НЛО прилетело и опубликовало эту надпись здесь
А я вообще всегда использую прямое общение с портом (nc/telnet) для проверки работоспособности почтового сервера — позволяет исключить проблемы клиентской части.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории