![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почтовый клиент.
@!!ex © (2007-08-31 12:35:00)Пытаюсь набросать простенький почтовый клиент.
Пользуюсь Indy компонентами.
Понял как грузить письма, в гугле куча примеров.
НЕ понял некоторых вещей:
1) Как получить только заголовки непорчитанных писем.
2) Как загрузить не все письма, а конкретное, которое выберет юзер после прочтения заголовка.
3) Как отметить письмо как прочитанное.
Turbouser (2007-08-31 18:33:00) [21]> [13] @!!ex © (31.08.07 18:27)
Я еще в [3] описАл как это примерно реализовать.
Не понимаю - в чем проблема?
Reindeer Moss Eater (2007-08-31 18:28:00) [22]запомни в клиенте все прочитанные им id писем это и будет решением.
на сервере они никак не помечаются как прочитанные.
это оптический обман.
@!!ex (2007-08-31 18:27:00) [23]Вот думаю, как бы узнать, по каким правилам GN связываеться с сервером..
@!!ex (2007-08-31 18:27:00) [24]> Это может быть реализовано как UI при доступе к ящику через
> http.
> А так нету у письма никакого атрибута "прочитано"
> Это приколы клиентских программ.
Возможно, только суть в том, что пользователю без разницы, где это реализовано, важно что нужно отмеать письма как прочитанные, чтобы при доступе с http юзер видел что они прочитанные.
Reindeer Moss Eater (2007-08-31 18:19:00) [25]ВОт в том то и дело, что на сервере она таки храниться, и основная суть задачи как раз в том, чтобы на сервере отмечать письмо как прочитанное.
Это может быть реализовано как UI при доступе к ящику через http.
А так нету у письма никакого атрибута "прочитано"
Это приколы клиентских программ.
@!!ex (2007-08-31 18:11:00) [26]> [10] tesseract © (31.08.07 16:25)
А где я гвоорил, что GN по этим протоколам работает?
tesseract (2007-08-31 16:25:00) [27]
> Объхясняю задачу. Есть такая штука gmail notifier.
А кто тебе сказал, что Gmail notifier /magent/ outlook по pop3/imap работают ? у них у всех свой API.
@!!ex (2007-08-31 15:25:00) [28]> Про прочитанные письма тебе уже говорили - эта информация
> хранится на клиенте, а не на сервере.
ВОт в том то и дело, что на сервере она таки храниться, и основная суть задачи как раз в том, чтобы на сервере отмечать письмо как прочитанное.
umbra (2007-08-31 15:23:00) [29]
> олько естественно не с помощью Инди, этот монстр малоподходящ
вполне подходящ. И не нужно никаких нотификаторов. Если сервер ничего не знает про уидлы, достаточно проверять в заголовках дату письма.
Anatoly Podgoretsky (2007-08-31 14:54:00) [30]> @!!ex (31.08.2007 14:09:06) [6]
> Тоесть нельзя выбрать только непрочитанные?
Заголовки их уже прочитаны с сервера! И задача поэтому смысла не имеет, поскольку нельзя прочитать не прочитаное.
Про прочитанные письма тебе уже говорили - эта информация хранится на клиенте, а не на сервере.
Тебе именно нужен нотификатор поступления новых писем.
Это можно сделать двумя путями
1. на сервере, при поступление отсылать куда то оповещение
2. на клиенте, если сервер поддерживает UIDL то достаточно запрашивать товые с учетом UIDL, если не поддерживает, то задача решения не имеет, поскольку для определения новых надо закачивать письмо и сравнивать с ранее сохранеными.
Таких нотификаторов уйма. Не все конечно показывают новые письма.
Но почему бы тебе самому не написать такой нотификтор, только естественно не с помощью Инди, этот монстр малоподходящ.
Команд в RFC не так и много, тем более тебе не требуется полная поддержка.
Получение списка, получение заголовков, получение письма, удаление.
@!!ex (2007-08-31 14:09:00) [31]> Может нужен IMAP ?
Я про IMAP ничгео не знаю...
> Кроме того, если их с сервера удалять, то все новые будут
> непрочитанными.
Не. Это не вариант.
> 1) может новых, иначе задача не имеет решения.
Тоесть нельзя выбрать только непрочитанные?
Объхясняю задачу. Есть такая штука gmail notifier.
Периодически она лазит в инет и покащывает письма, не новые, а именно не прочитанные.
Как я понял, работает она через web интерфейс, ну это не важно.
Большой минус этой проги в том, что она каждый раз показывает все непрочитанные, соответственно чтобы она не задалбливала сообщениями о непрочитанных письмах их нужно отмечать как прочитанные, для этого надо залазить в браузер и лезть на почту.
Собственно хочеться возможности быстренько просмотреть письмо пришедшее, после чего если фигня какая то, то удалить с сервера или просто отметить как прочитанное, и забыть, а лезть в почту, только если что-то полезное.
Сейчас читаю про IMAP и POP3, походу нереализуемо это все...
Anatoly Podgoretsky (2007-08-31 14:01:00) [32]1) может новых, иначе задача не имеет решения.
umbra (2007-08-31 13:49:00) [33]
> Там не реализован ни один из мной описанных пунктов.
там реализованы 2 пункта см. процедуру CheckMailExecute. Сервер не знает, читалы Вы это сообщение или нет, такие надо выбирать вручную. Кроме того, если их с сервера удалять, то все новые будут непрочитанными.
turbouser (2007-08-31 13:41:00) [34]
> @!!ex © (31.08.07 13:10) [2]
Не внимательно прочитал :)
1) - серверу до лампочки, прочитано письмо юзером или нет.
Сервер может отдавать письма по идентификатору письма (UID)
т.е. запрашиваем список писем с сервера - pop.uidl()
далее сверяем список с имеющимися письмами и загружаем
только те, которые не отмечены как прочитанные на клиенте.
2) про загрузку тела письма есть в примерах
3) как прочитанное письмо отмечается только на клиенте.
Может нужен IMAP ?
@!!ex (2007-08-31 13:10:00) [35]> В demo для indy 9 есть полноценный почтовый клиент.
Там не реализован ни один из мной описанных пунктов.
turbouser (2007-08-31 13:02:00) [36]
> @!!ex © (31.08.07 12:35)
В demo для indy 9 есть полноценный почтовый клиент.
В демках для 10 не смотрел, но думаю там тоже аналогичное.
http://www.indyproject.org/Sockets/Demos/index.EN.aspx