Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Почтовый клиент


Автор: ShuVaS 6.3.2005, 23:35
Хочу попробовать написать почтовый клиент - задача возможность отправки почты , присоеденение файлов к почте , проверка ящика . Вопрос (у меня стоит Дельфи 7) - на какой основе мне делать - ведь есть куча компонентов idPOP3 и idSPMT ...

Автор: AlFox 7.3.2005, 00:04

IdSMTP - отправка.
IdPOP3 - получение.

(по моему так)

Автор: Poseidon 7.3.2005, 05:27
ShuVaS, ответ на твой вопрос, по- моему, одназначен. Какой компонент больше нравится, тот и используй. В Делфи есть куча похожих компонентов, и все используют по своему вкусу. Решать тебе. Вот какой компонент лучше - это уже другой вопрос.

Автор: ShuVaS 7.3.2005, 10:22
Ну просто примеров отправки(на этом сайте) с idPOP3 я не видел - можете подсказать ? smile

Автор: Snowy 7.3.2005, 11:04
Конечно не видел.
Есть примеры отправки через IdSMTP.
Пример получения почты и выдергивания аттача через IdPOP3 только что пробегал.
Через POP3 не отправляют, а через SMTP не принимают smile Все совсем наоборот.

Автор: ShuVaS 7.3.2005, 11:30
АААА..ясно - а можно как то узнать что ко мне пришло новое письмо ?То есть допустим у меня ящик [email protected] всего нем x писем - как что из них 3 новых smile

Автор: Snowy 7.3.2005, 11:35
кол-во писем=IdPOP3.CheckMessages;
Почитай топик:
http://forum.vingrad.ru/index.php?showtopic=44287

Что касается новые это письма или нет, то тут уже нужно скачивать их (или хотя бы их заголовки) и смотреть по ID - скачивал ты их уже или еще нет.

Автор: Nati0sh 10.5.2006, 11:31
а не могли бы дать пример самого просто почтового клиента со множеством комментов
для изучения 

Автор: Snowy 10.5.2006, 11:36
Пример... Легко.
Качаешь примеры с сайта Indy: http://www.projectindy.org/DemoDownloads/Indy9Demos_26Oct04.zip (1.3Mb)
Там и почтовый клиент в комплекте имеется.

Добавлено @ 11:37 
Для Indy10 http://www.indyproject.org/DemoDownloads/Indy_10_MailClient.zip 

Автор: Nati0sh 10.5.2006, 11:39
ещё просьба
он просит вот эти компоненты 
POP.AutoLogin
POP.SASLMechanisms
Msg.FromList
Msg.ConvertPreamble
где их можно взять? 

Автор: Snowy 10.5.2006, 11:51
Это модули Indy 10.
Если у тебя 9-ка, то ты не те примеры скачал.

Добавлено @ 11:53 
Хм. На сайте Indy ссылка битая.
Выкладываю MailClient для 9-ки.

Добавлено @ 11:55 
Нашел. У них ошибка в линке.
Правильный линк такой: http://www.indyproject.org/DemoDownloads/Indy9Demos_26Oct04.zip (1.3Mb) 

Автор: Nati0sh 10.5.2006, 12:02
при открытии пишет что cannot find resource file (путь)\MailDemos.res . Recreated
жму ок
и говорит что не находит Msg.DeleteTempFiles
=( 

Автор: Snowy 10.5.2006, 12:09
Цитата(Nati0sh @  10.5.2006,  12:02 Найти цитируемый пост)
при открытии пишет что cannot find resource file (путь)\MailDemos.res . Recreated
Правильно. И незачем res пихать в исходники. Он и так создастся автоматом.

Цитата(Nati0sh @  10.5.2006,  12:02 Найти цитируемый пост)
жму ок
Правильно.

Цитата(Nati0sh @  10.5.2006,  12:02 Найти цитируемый пост)
говорит что не находит Msg.DeleteTempFiles
Это потому что пример для версии 9.00.17, а у тебя 9.00.10.
Это он всего лишь ругается, что в DFM есть пропертя, которой нет у компонента.
Жми Ignore - и без этого работает.  

Автор: Nati0sh 10.5.2006, 12:13
спасибо  smile  

Автор: drkot 11.5.2006, 14:00
Цитата(ShuVaS @  7.3.2005,  11:30 Найти цитируемый пост)
АААА..ясно - а можно как то узнать что ко мне пришло новое письмо ?То есть допустим у меня ящик [email protected] всего нем x писем - как что из них 3 новых


Вот пример определения есть новые письма или нет.
Код


  IdPOP3.Connect();
  MsgCount:=IdPOP3.CheckMessages;
  Memo1.Lines.Add('Количество писем на сервере '+inttostr(MsgCount));
  IdPOP3.UIDL(Memo1.Lines);
// получает список идентификаторов писем
  IdPOP3.Disconnect;



список маленький байт по 20-30 на письмо (гораздо меньше заголовка)
списочек сохранил на диске и сравниваеш с полученым с сервера. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)