POP3 UIDL
От: ArtyomMirgorodsky  
Дата: 06.04.04 13:37
Оценка:
Вот таки решился написать почтовик, подскажите, насколько корректно использование команды UIDL. В стандартах сказано, что её поддержка необязательна. Но иначе как организовать корректный приём и удаление писем с сервера, если хранить сообщения на сервере некоторое время?
Re: POP3 UIDL
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 06.04.04 14:15
Оценка:
Здравствуйте, ArtyomMirgorodsky, Вы писали:

AM>Вот таки решился написать почтовик, подскажите, насколько корректно использование команды UIDL. В стандартах сказано, что её поддержка необязательна. Но иначе как организовать корректный приём и удаление писем с сервера, если хранить сообщения на сервере некоторое время?


Если сервер не поддерживает UIDL (что в настоящее время встречается нечасто), то можно делать хэш на основе заголовка письма, например. И по нему сравнивать. Заголовок письма, если не ошибаюсь, можно запросить

TOP {MESSAGE_NUM} 0
Re[2]: POP3 UIDL
От: ArtyomMirgorodsky  
Дата: 06.04.04 14:25
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Если сервер не поддерживает UIDL (что в настоящее время встречается нечасто), то можно делать хэш на основе заголовка письма, например. И по нему сравнивать. Заголовок письма, если не ошибаюсь, можно запросить TOP {MESSAGE_NUM} 0


TOP также дополнительная команда.

Люблю вспоминать герб советского союза — серп и молот — закоси и забей.
Re[3]: POP3 UIDL
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 06.04.04 14:34
Оценка: -1
Здравствуйте, ArtyomMirgorodsky, Вы писали:

AM>Здравствуйте, Flamer, Вы писали:


F>>Если сервер не поддерживает UIDL (что в настоящее время встречается нечасто), то можно делать хэш на основе заголовка письма, например. И по нему сравнивать. Заголовок письма, если не ошибаюсь, можно запросить TOP {MESSAGE_NUM} 0


AM>TOP также дополнительная команда.


Ну и что? Вы ведь все равно будете посылать команду UIDL, не так-ли? Если сервер вернет код ошибки — вызовите TOP. Делов-то на 5 минут и всего одна лишняя команда... Реализация которой, впрочем, в дальнейшем может принести только дополнительные бонусы (например, предпросмотр первых строк письма или анализ заголовков).

AM>Люблю вспоминать герб советского союза — серп и молот — закоси и забей.


У кажлого свои тараканы
Re[4]: POP3 UIDL
От: ArtyomMirgorodsky  
Дата: 06.04.04 14:57
Оценка: -1
Здравствуйте, Flamer, Вы писали:

F>Ну и что? Вы ведь все равно будете посылать команду UIDL, не так-ли? Если сервер вернет код ошибки — вызовите TOP. Делов-то на 5 минут и всего одна лишняя команда... Реализация которой, впрочем, в дальнейшем может принести только дополнительные бонусы (например, предпросмотр первых строк письма или анализ заголовков).


AM>>TOP также дополнительная команда.

И если не поддерживается UIDL не будет поддерживаться и TOP
Re[5]: POP3 UIDL
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 06.04.04 15:03
Оценка: :)
Здравствуйте, ArtyomMirgorodsky, Вы писали:

AM>Здравствуйте, Flamer, Вы писали:


F>>Ну и что? Вы ведь все равно будете посылать команду UIDL, не так-ли? Если сервер вернет код ошибки — вызовите TOP. Делов-то на 5 минут и всего одна лишняя команда... Реализация которой, впрочем, в дальнейшем может принести только дополнительные бонусы (например, предпросмотр первых строк письма или анализ заголовков).


AM>>>TOP также дополнительная команда.

AM>И если не поддерживается UIDL не будет поддерживаться и TOP

Какое счастье, что вы неправы С чего вы это взяли? Отсутствие поддержки одного не означает отсутствие реализации поддержки другого.

Вот в чем вы правы, так это в том, что TOP, как и UIDL — это опциональные команды. Так что, проверять-то придется по-любому. Может быть случай, когда будет TOP, но не будет UIDL. И наоборот, естественно.

Я искренне предложил нормальный, имхо, способ. Больше писать сюда не буду — обиделся на минус
Re[6]: POP3 UIDL
От: ArtyomMirgorodsky  
Дата: 07.04.04 06:02
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Какое счастье, что вы неправы С чего вы это взяли? Отсутствие поддержки одного не означает отсутствие реализации поддержки другого.


F>Вот в чем вы правы, так это в том, что TOP, как и UIDL — это опциональные команды. Так что, проверять-то придется по-любому. Может быть случай, когда будет TOP, но не будет UIDL. И наоборот, естественно.


F>Я искренне предложил нормальный, имхо, способ. Больше писать сюда не буду — обиделся на минус


Не обижайся, может я не привык к здешним правилам. Вспомни, как звучал мой вопрос, корректно ли твоё предложение? 100% ли это выход? Нет. Да можно проверять и нужно проверять и ту и ту возможность. Но это не универсальный вариант. Зачем тогда писать лишний код, если будет ещё 3 общий вариант?
Re[7]: POP3 UIDL
От: Виталий Россия  
Дата: 07.04.04 06:27
Оценка: +1
Здравствуйте, ArtyomMirgorodsky, Вы писали:

F>>Какое счастье, что вы неправы С чего вы это взяли? Отсутствие поддержки одного не означает отсутствие реализации поддержки другого.


F>>Вот в чем вы правы, так это в том, что TOP, как и UIDL — это опциональные команды. Так что, проверять-то придется по-любому. Может быть случай, когда будет TOP, но не будет UIDL. И наоборот, естественно.


F>>Я искренне предложил нормальный, имхо, способ. Больше писать сюда не буду — обиделся на минус


AM>Не обижайся, может я не привык к здешним правилам. Вспомни, как звучал мой вопрос, корректно ли твоё предложение? 100% ли это выход? Нет. Да можно проверять и нужно проверять и ту и ту возможность. Но это не универсальный вариант. Зачем тогда писать лишний код, если будет ещё 3 общий вариант?

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

+ есть команда CAPA, если она поддерживается(что не факт ), то не нужно будет пробовать UIDL & TOP.
Re[7]: POP3 UIDL
От: maximilian Украина  
Дата: 07.04.04 11:20
Оценка: +1
Здравствуйте, ArtyomMirgorodsky, Вы писали:

Если ни UIDL ни TOP не поддерживаются, можно анализировать список, возвращаемый LIST, и, если в нем появляется нечто новое, затягивать. Не исключена ситуация, что придет сообщение, размер которого совпадает с размером уже имеющегося сообщения, тогда, видимо, придется тянуть оба сообщения и выяснять кто есть кто...
Re: POP3 UIDL
От: PK Sly http://www.vocord.ru/
Дата: 07.04.04 19:47
Оценка: 2 (1)
в реальной жизни, не видел ни одного сервера, не поддерживающего UIDL.
все почтовые клиенты им пользуются.
VAX/VMS rulez!
Re[2]: POP3 UIDL
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 08.04.04 12:27
Оценка:
Здравствуйте, PK Sly, Вы писали:

PS>в реальной жизни, не видел ни одного сервера, не поддерживающего UIDL.

PS>все почтовые клиенты им пользуются.

Согласен.
Re[7]: POP3 UIDL
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 08.04.04 12:31
Оценка:
Здравствуйте, ArtyomMirgorodsky, Вы писали:

[]

AM>Не обижайся, может я не привык к здешним правилам.


Да я не обижаюсь — я смайлик поставил

AM>Вспомни, как звучал мой вопрос, корректно ли твоё предложение? 100% ли это выход? Нет. Да можно проверять и нужно проверять и ту и ту возможность. Но это не универсальный вариант. Зачем тогда писать лишний код, если будет ещё 3 общий вариант?


Вот что интересно: изначально _грамотный_ вариант реализации, охватывающий все возможные настройки серверов, получил минус, а голословное (прости, PK Sly, но это только твои слова, с коими я, впрочем, согласен) утверждение получило награду в два балла.

Еще раз убеждаюсь — лень — двигатель прогресса Тогда вам надо было поставить вопрос по другому:

Все-ли POP3-сервера поддерживают UIDL, а то не хочется напрягаться :))


и все. Удачи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.