Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Вниз

Почтовый клиент.   Найти похожие ветки 

 
@!!ex ©   (2007-08-31 12:35) [0]

Пытаюсь набросать простенький почтовый клиент.
Пользуюсь Indy компонентами.
Понял как грузить письма, в гугле куча примеров.
НЕ понял некоторых вещей:
1) Как получить только заголовки непорчитанных писем.
2) Как загрузить не все письма, а конкретное, которое выберет юзер после прочтения заголовка.
3) Как отметить письмо как прочитанное.


 
turbouser ©   (2007-08-31 13:02) [1]


> @!!ex ©   (31.08.07 12:35)

В demo для indy 9 есть полноценный почтовый клиент.
В демках для 10 не смотрел, но думаю там тоже аналогичное.
http://www.indyproject.org/Sockets/Demos/index.EN.aspx


 
@!!ex ©   (2007-08-31 13:10) [2]

> В demo для indy 9 есть полноценный почтовый клиент.

Там не реализован ни один из мной описанных пунктов.


 
turbouser ©   (2007-08-31 13:41) [3]


> @!!ex ©   (31.08.07 13:10) [2]

Не внимательно прочитал :)
1) - серверу до лампочки, прочитано письмо юзером или нет.
Сервер может отдавать письма по идентификатору письма (UID)
т.е. запрашиваем список писем с сервера - pop.uidl()
далее сверяем список с имеющимися письмами и загружаем
только те, которые не отмечены как прочитанные на клиенте.
2) про загрузку тела письма есть в примерах
3) как прочитанное письмо отмечается только на клиенте.

Может нужен IMAP ?


 
umbra ©   (2007-08-31 13:49) [4]


> Там не реализован ни один из мной описанных пунктов.

там реализованы 2 пункта см. процедуру CheckMailExecute. Сервер не знает, читалы Вы это сообщение или нет, такие надо выбирать вручную. Кроме того, если их с сервера удалять, то все новые будут непрочитанными.


 
Anatoly Podgoretsky ©   (2007-08-31 14:01) [5]

1) может новых, иначе задача не имеет решения.


 
@!!ex ©   (2007-08-31 14:09) [6]

> Может нужен IMAP ?

Я про IMAP ничгео не знаю...


> Кроме того, если их с сервера удалять, то все новые будут
> непрочитанными.

Не. Это не вариант.


> 1) может новых, иначе задача не имеет решения.

Тоесть нельзя выбрать только непрочитанные?

Объхясняю задачу. Есть такая штука gmail notifier.
Периодически она лазит в инет и покащывает письма, не новые, а именно не прочитанные.
Как я понял, работает она через web интерфейс, ну это не важно.
Большой минус этой проги в том, что она каждый раз показывает все непрочитанные, соответственно чтобы она не задалбливала сообщениями о непрочитанных письмах их нужно отмечать как прочитанные, для этого надо залазить в браузер и лезть на почту.
Собственно хочеться возможности быстренько просмотреть письмо пришедшее, после чего если фигня какая то, то удалить с сервера или просто отметить как прочитанное, и забыть, а лезть в почту, только если что-то полезное.

Сейчас читаю про IMAP и POP3, походу нереализуемо это все...


 
Anatoly Podgoretsky ©   (2007-08-31 14:54) [7]

> @!!ex  (31.08.2007 14:09:06)  [6]

> Тоесть нельзя выбрать только непрочитанные?

Заголовки их уже прочитаны с сервера! И задача поэтому смысла не имеет, поскольку нельзя прочитать не прочитаное.
Про прочитанные письма тебе уже говорили - эта информация хранится на клиенте, а не на сервере.
Тебе именно нужен нотификатор поступления новых писем.
Это можно сделать двумя путями

1. на сервере, при поступление отсылать куда то оповещение
2. на клиенте, если сервер поддерживает UIDL то достаточно запрашивать товые с учетом UIDL, если не поддерживает, то задача решения не имеет, поскольку для определения новых надо закачивать письмо и сравнивать с ранее сохранеными.

Таких нотификаторов уйма. Не все конечно показывают новые письма.
Но почему бы тебе самому не написать такой нотификтор, только естественно не с помощью Инди, этот монстр малоподходящ.
Команд в RFC не так и много, тем более тебе не требуется полная поддержка.
Получение списка, получение заголовков, получение письма, удаление.


 
umbra ©   (2007-08-31 15:23) [8]


> олько естественно не с помощью Инди, этот монстр малоподходящ

вполне подходящ. И не нужно никаких нотификаторов. Если сервер ничего не знает про уидлы, достаточно проверять в заголовках дату письма.


 
@!!ex ©   (2007-08-31 15:25) [9]

> Про прочитанные письма тебе уже говорили - эта информация
> хранится на клиенте, а не на сервере.

ВОт в том то и дело, что на сервере она таки храниться, и основная суть задачи как раз в том, чтобы на сервере отмечать письмо как прочитанное.


 
tesseract ©   (2007-08-31 16:25) [10]


> Объхясняю задачу. Есть такая штука gmail notifier.


А кто тебе сказал, что Gmail notifier /magent/ outlook  по pop3/imap работают ? у них у всех свой API.


 
@!!ex ©   (2007-08-31 18:11) [11]

> [10] tesseract ©   (31.08.07 16:25)

А где я гвоорил, что GN по этим протоколам работает?


 
Reindeer Moss Eater ©   (2007-08-31 18:19) [12]

ВОт в том то и дело, что на сервере она таки храниться, и основная суть задачи как раз в том, чтобы на сервере отмечать письмо как прочитанное.

Это может быть реализовано как UI при доступе к ящику через http.
А так нету у письма никакого атрибута "прочитано"
Это приколы клиентских программ.


 
@!!ex ©   (2007-08-31 18:27) [13]

> Это может быть реализовано как UI при доступе к ящику через
> http.
> А так нету у письма никакого атрибута "прочитано"
> Это приколы клиентских программ.

Возможно, только суть в том, что пользователю без разницы, где это реализовано, важно что нужно отмеать письма как прочитанные, чтобы при доступе с http юзер видел что они прочитанные.


 
@!!ex ©   (2007-08-31 18:27) [14]

Вот думаю, как бы узнать, по каким правилам GN связываеться с сервером..


 
Reindeer Moss Eater ©   (2007-08-31 18:28) [15]

запомни в клиенте все прочитанные им id писем это и будет решением.
на сервере они никак не помечаются как прочитанные.
это оптический обман.


 
Turbouser ©   (2007-08-31 18:33) [16]

> [13] @!!ex ©   (31.08.07 18:27)

Я еще в [3] описАл как это примерно реализовать.
Не понимаю - в чем проблема?


 
@!!ex ©   (2007-08-31 18:34) [17]

> это оптический обман.

ЛОЛ. Предположим.
Как управлять этим оптическим обманом? :)
Я думаю, как вариант, проге эмулировать веб интерфейс, и открывать через него письмо, тогда на сервере оно пометиться как прочитанное.
Вопрос в том, как получить лог, содержащий данные для обмена между сервером gmail и браузером.

Узнал как работает GN. Он через RSS получает данные.
Вопрос, как работать с RSS.


 
@!!ex ©   (2007-08-31 18:36) [18]

> [16] Turbouser ©   (31.08.07 18:33)

Лично я в [3] увидел только про получение конкретного письма. Спасибо. Остальные вопросы без ответа пока.


 
Reindeer Moss Eater ©   (2007-08-31 18:37) [19]

Возьми два почтовых клиента, натрави их на один ящик и скажи оставлять копии сообщений на сервере.

И выяснится, что сервер не просто метит сообщения как прочитанные, но еще и умудряется при этом различать каким именно клиентом и с какой машины было прочитано письмо. О чудо, правда?

:)))


 
Anatoly Podgoretsky ©   (2007-08-31 18:40) [20]

> @!!ex  (31.08.2007 18:27:13)  [13]

Это или IMAP или запомнено на клиенте, как правило первое.


 
Turbouser ©   (2007-08-31 18:46) [21]

> [18] @!!ex ©   (31.08.07 18:36)

Может, плохо смотрел?


 
@!!ex ©   (2007-08-31 18:46) [22]

> Возьми два почтовых клиента, натрави их на один ящик и скажи
> оставлять копии сообщений на сервере.
>
> И выяснится, что сервер не просто метит сообщения как прочитанные,
> но еще и умудряется при этом различать каким именно клиентом
> и с какой машины было прочитано письмо. О чудо, правда?
>
> :)))

Это был к чему комментарий?


> Это или IMAP или запомнено на клиенте, как правило первое.

Ок. Буду разбираться с IMAP.


 
Reindeer Moss Eater ©   (2007-08-31 18:47) [23]

Это был к чему комментарий?

К тому, что POP3 сервер не метит письма как прочитанные


 
@!!ex ©   (2007-08-31 18:52) [24]


> [21] Turbouser ©   (31.08.07 18:46)

Может быть.

> [23] Reindeer Moss Eater ©   (31.08.07 18:47)

Я разве где то говорил про pop3?


 
Reindeer Moss Eater ©   (2007-08-31 18:54) [25]

Я разве где то говорил про pop3?

А я в этом виноват?


 
@!!ex ©   (2007-08-31 19:02) [26]

Reindeer Moss Eater, вы сами себе противоречите.
ТО выговорите, что на сервере ничего не храниться[12][15], то резко меняете свое мнение[19].
Вы бы ета, не говорили о том, о чем не знаете...


 
Reindeer Moss Eater ©   (2007-08-31 19:06) [27]

[19] - Шутка.

Если бы сервер метил прочитанные письма, то как бы ты объяснил такое странное явление:

письмо, прочитанное с майлру на работе вдруг оказывается непрочитанным когда я прихожу домой и читаю тот же ящик на майлру?

"Учите русский чтобы понимать юмор"


 
@!!ex ©   (2007-08-31 19:16) [28]

> Если бы сервер метил прочитанные письма, то как бы ты объяснил
> такое странное явление:
>
> письмо, прочитанное с майлру на работе вдруг оказывается
> непрочитанным когда я прихожу домой и читаю тот же ящик
> на майлру?

pop3?
imap как раз всю информацию на сервере хранит, в том числе и метит письма как прочитанные.


 
@!!ex ©   (2007-08-31 19:19) [29]

правда gmail дает доступ только через pop3...


 
Turbouser ©   (2007-08-31 19:27) [30]

> [29] @!!ex ©   (31.08.07 19:19)

Не факт, м.б. неофициально и поддерживает. Как работает этот GN ?
Что и куда отправляет? А может есть самодельные команды серверу
т.е. gmail api :)
Впрочем, в этой ветке все это уже обсуждалось.


 
@!!ex ©   (2007-08-31 19:32) [31]

> Как работает этот GN ?

Через RSS.
У них официальная поддержка получения почты через RSS.
Аналог GN я без проблем напишу, уже понял как. Он только заголовки писем получает и все.
А вот как получиьт конкретное письмо полностью и как отметить его как прочитанное, вот это вопрос...


 
Turbouser ©   (2007-08-31 19:34) [32]

> [29] @!!ex ©   (31.08.07 19:19)

http://www.google.ru/search?hl=ru&q=gmail+api&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=
Собственно :
http://sourceforge.net/projects/gmail-api
точнее
http://johnvey.com/features/gmailapi/


 
Turbouser ©   (2007-08-31 19:35) [33]

> [31] @!!ex ©   (31.08.07 19:32)

Подойдет?


 
@!!ex ©   (2007-08-31 19:38) [34]

> [33] Turbouser ©   (31.08.07 19:35)

Посмотрю, что это. Спасибо!


 
@!!ex ©   (2007-08-31 19:42) [35]

> [33] Turbouser ©   (31.08.07 19:35)

Походу это оно, и построен Gmail API на базе http, как я и предполпгпл в [6].
Спасибо!!


 
Turbouser ©   (2007-08-31 19:43) [36]

> [35] @!!ex ©   (31.08.07 19:42)

Всегда к вашим услугам :-)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.049 c
15-1188377555
Azize
2007-08-29 12:52
2007.09.30
Хелпы


2-1188813839
Lyberzon
2007-09-03 14:03
2007.09.30
Как загрузить из INI список секций в ComboBox?


2-1189071272
малой
2007-09-06 13:34
2007.09.30
FloatToInteger


6-1169910216
nes_
2007-01-27 18:03
2007.09.30
Idhttp + IdSSLIOHandlerSocket = Cannot load ssl library


2-1188886212
Bast
2007-09-04 10:10
2007.09.30
Проблема





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский