Ребят, здесь есть тема по отправки почты и там очень много полезного, но дело в том, что мне нужно как раз получать почту, а не отправлять. Кто-нибудь подскажите, как это можно сделать.
Прием почты
Прием почты
|
23.12.2009 17:45:15
|
|
|
|
|
|
23.12.2009 17:48:28
Я знаю только такой способ, хотя он уже устаревший, но для старых версий Delphi вполне применим.
Сначала нужно подключиться к серверу, осуществляется это так
В трех компонентах edit храниться адрес сервера, логин и пароль пользователя. Теперь нам нужно получить письма, для этого пишем такой код
Думаю здесь также все понятно, в каком компоненте, что отображается и для чего он нужен |
|||||
|
|
|
|
23.12.2009 17:54:27
Спасибо, не совсем понял, зачем нужен Edit4?
|
|
|
|
|
|
23.12.2009 18:03:51
В edit4 храниться номер письма, которое нужно получить.
|
|
|
|
|
|
23.12.2009 18:04:43
Сейчас уже не нужно использовать NMPOP3 для получения почты, на смену ему пришли компоненты Indy. Например, я получаю письмо так
|
|||
|
|
|
|
23.12.2009 18:10:08
Все верно, кстати, чтобы получить письмо и вывести его атрибуты можно использовать такой код
|
|||
|
|
|
|
23.12.2009 18:13:11
А вот так можно получить несколько писем. В данном случае их 10. Хочу спросить, может быть, кто-нибудь знает, как доработать этот код, чтобы он получал все письма из почтового ящика
|
|||
|
|
|
|
23.12.2009 18:16:54
Здесь достаточно ограничить цикл очень большим числом, а выход осуществляется при отсутствии писем, но нужно еще продумать вопрос получениях новых писем. Для этого придется либо удалять все письма с сервера после их получения, либо запоминать количество писем которое было в прошлый раз.
|
|
|
|
|
|
23.12.2009 18:22:56
Спасибо, а как получить количество всех писем в почтовом ящике?
|
|
|
|
|
|
23.12.2009 18:25:23
Ну, как получить количество писем я не знаю, но можно загружать только заголовки писем, используя RetrieveHeader, а потом уже посчитать количество этих заголовков.
|
|
|
|
|
|
23.12.2009 18:31:03
Чтобы отличить прочитанное и непрочитанное письмо можно использовать идентификатор писем. Каждое письмо содержит уникальный идентификатор UIDL. После получения UIDL всех писем на сервере, нужно сравнить их (UIDL) с теми, что уже имеются у клиента и загрузить только те, у которых идентификатор будет отличаться.
|
|
|
|
|
|
23.12.2009 18:37:10
А можно, как-нибудь получить информацию о еще непрочитанных письмах с сервера? Ведь если зайти на сервер, там все непрочитанные письма выделены жирным шрифтом.
|
|
|
|
|
|
23.12.2009 18:40:33
Протокол POP3 не дает информации о том, было ли прочитано письмо или нет. В этом протоколе такого просто нет.
|
|
|
|
|
|
23.12.2009 18:51:05
Но как же, например, в TheBat точно есть функция пометить письма как прочитанные.
|
|
|
|
|
|
23.12.2009 18:56:01
Есть почтовые клиенты, которые обрабатывают информацию о прочтении писем от сервера, а не хранят её у себя, но в самом протоколе такая информация не содержится.
|
|
|
|
|
|
23.12.2009 19:00:45
Здравствуйте все. У меня сейчас проблема есть небольшая, надеюсь вы сможете мне помочь. Как можно отобразить заголовок письма по-русски, потому что у меня там сейчас пишется примерно такая абракадабра
=?koi8-r?B?68nOz+vBxNI6INPSxcTBLCAwNSDExcv BwtLR?= |
|
|
|
|
|
23.12.2009 19:13:07
Для этого нужно перекодировать KOI-8 в win. Можно с помощью такого кода
|
|||
|
|
|
|
23.12.2009 19:14:06
Помню я тоже, когда-то мучился с такой же проблемой. Тут еще сложность в том, что непонятно в какой кодировки написан заголовок.
|
|
|
|
|
|
23.12.2009 19:18:26
Алексей, спасибо, но как я узнаю какая кодировка у заголовка письма?
|
|
|
|
|
|
23.12.2009 19:27:00
Если кодировка win, то все отобразиться без проблем, а если koi-8 то об этом будет написано. Используйте pos('koi8', ..)
|
|
|
|
|
|
23.12.2009 19:30:49
Алексей, а Ваш код не будет работать. Сами посмотрите там только русские буквы, а в заголовке могут быть еще и английские.
|
|
|
|
|
|
23.12.2009 19:35:09
Может быть стоит использовать ЕIdDecoderMIME или может быть есть стандартные INDY которые решают эту проблему. Я вообще не специалист, но советую копать в этом направлении.
|
|
|
|
|
|
23.12.2009 19:48:22
А где их можно скачать или на какой они вкладке?
|
|
|
|
|
|
23.12.2009 19:50:12
В IndyMisc, там на иконке «64» написано
Изменено:
Иван Прокофьев - 23.12.2009 19:50:23
|
|
|
|
|
|
23.12.2009 19:52:07
Думаю, вам стоит обратить внимание вот на эту статью http://www.delphikingdom.com/asp/viewitem.asp?catalogid=691 Мне кажется, что она позволит Вам решить Ваше проблему.
|
||||
|
|
|
|||
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)