Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с почтой [D7, Win95/98, WinME, WinXP]


Dark Elf ©   (2003-09-10 12:15:00) 

Уважаемые господа!

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

Заранее благодарен за ответ


alt7   (2003-12-11 12:42:00) [1]

Отличный примерчик, а вот расширить бы его немного.
Работаю по TIdIMAP4 с почтовым ящиком. Задача состоит в том, чтоб определить по сообщению в ящике адрес отправителя, и если он есть в списке и у письма есть аттачмент(-ы), то сохранить аттачмент(-ы) в опред. папку. (аттачи бывают *.zip или *.dbf)

IdIMAP4.Connect();
IdIMAP4.SelectMailBox("INBOX");
MsgCount:=IdIMAP4.MailBox.TotalMsgs;
for i := 1 to MsgCount do
begin
IdIMAP4.Retrieve(i,IdMsg);
for j := 0 to Length(Receive_REC.E_Mail_From)-1 do
if (IdMsg.From.Address = Receive_REC.E_Mail_From[j]) and
(IdMsg.MessageParts.AttachmentCount > 0) then
begin
ShowMessage(IntToStr(IdMsg.MessageParts.AttachmentCount));
end;

E_Mail_From - массив строк с адресами, в которых ищутся аттачи.
ShowMessage никогда не появляется на экране, потому что IdMsg.MessageParts.AttachmentCount всегда равен 0, и на письмах в которых есть аттачи тоже. Почему? и как правильно сделать?


All   (2003-10-29 08:24:00) [2]

см. Examples\FastNet\Pop3 в дире где лежит Delphi

Удачи.


Kinder   (2003-10-27 22:30:00) [3]

есть IndyProject называется библиотека.


Vladimir Bolotin   (2003-10-27 21:44:00) [4]

А компонет TIdIMAP появился только в Дельфи 7?
Можно ли достать его отдельно ( конкретно меня интересует для Дельфи 6 ) ?


Dark Elf   (2003-09-10 17:15:00) [5]

Спсибо!


Maxim Volobuev   (2003-09-10 15:18:00) [6]

if ServerType="POP3" then begin
if IdPOP31.Connected then IdPOP31.Disconnect;
IdPOP31.Host:=MailHost;
IdPOP31.Username:=MailUserName;
IdPOP31.Password:=MailPassword;
IdPOP31.Connect;
MsgCount:=IdPOP31.CheckMessages;
end else begin
IdIMAP41.Host:=MailHost;
IdIMAP41.Username:=MailUserName;
IdIMAP41.Password:=MailPassword;
IdIMAP41.Connect;
IdIMAP41.SelectMailBox("INBOX");
MsgCount:=IdIMAP41.MailBox.TotalMsgs;
end;
for i:=1 to MsgCount do begin
IdMessage1.Clear;
if ServerType="POP3" then IdPOP31.Retrieve(i,IdMessage1)
else IdIMAP41.Retrieve(i,IdMessage1);
IdMessage1.Body.SaveToFile(FileName);
if not LeaveMessage then
if ServerType="POP3" then IdPOP31.Delete(i) else begin
IdIMAP41.DeleteMsgs(i);
IdIMAP41.ExpungeMailBox;
end;
end;
if ServerType="POP3" then IdPOP31.Disconnect else
IdIMAP41.Disconnect

Пойдет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо