Протокол POP3
У меня вопрос по протоколу POP3: с помощью какой команды можно узнать только о новых письмах?(если таковая конечно имеется)
Я такой команды не нашел, просто мне тогда непонятно, как почтовые клиенты, используя только POP3, определяют новые письма?
ИМХО никакой. Только выгребать заголовки писем и сверять с полученными ранее :(
TOP msg n
где msg - номер сообщения, а n - число строк текста (не заголовка) сообщения для возврата, если n больше числа строк в сообщении, посылается все сообщение.
По моему язык тут не важен ...:)
Про TOP я тоже думал, но вот что делать с удаленными сообщениями...?
В смысле?
Поизучай структуру заголовков, там встречаются вполне уникальные (кроме точой даты, разумеется) поля. Можно же наконец на основе всего заголовка составить а-ля хеш конкретного письма (хотя идея и бредоватая)...
При проверке сохраняй список уже существующих писем (хешей, дат из заголовка, как угодно), при следующей(их) греби все заголовки по новой и сверяй, нет ли в твоей базе такого письма. Ах, да, письма ведь в порядке прибывания вроде как расположены (не уверен как там на конкретных серверах), если так - выгребать можно только, пока не повстречаешь ранее зафиксированное, потом останавливаться, все что сосчитал - новое :)
Sergei_ - в общем случае никак. протокол POP3 не предусматривает такого функционала. прочитайте RFC1939. Некоторые сервера, AFAIK позволяют такое делать - Dovecot, например, может устанавливать соответствующие флаги, манипулируя maildir'ами или mbox'ами. но это против стандартов. так что если надо работать с сообщениями на стороне сервера - используйте IMAP. он для этого создавался. не надо изобретать велосипед с квадратными колесами.
Насчет велосипеда с квадратными колёсами согласен :) , но POP3 просто немного проще для реализации:)
Всем спасибо.
Заранее спасибо.