![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Indy [D2005, XP]
antonio_b © (2006-01-11 10:37:00)Нужен примерчик по работе с TIdImap4 или ссылочка на соотв. инфу.
Альф (2006-01-11 12:42:00) [1]
function CheckMailByUID(): integer;
var
i: integer;
path: string;
filename: TFileName;
amsglist: TIdMessageCollection;
msguid: string;
begin
result := 0;
path := 'D:\mail\inbox.msg\';
IdIMAP.Connect();
if IdIMAP.Connected
then try
if IdIMAP.SelectMailBox('INBOX')
then try
amsglist := TIdMessageCollection.Create(TIdMessageItem);
if IdIMAP.UIDRetrieveAllEnvelopes(amsglist)
then begin
//{*} add2log(LOG_Info, 'Всего писем: ' + IntToStr(amsglist.Count));
for i := 0 to amsglist.Count -1 do begin
Application.ProcessMessages();
msguid := (amsglist.Items[i] as TIdMessageItem).IdMessage.UID;
if IdIMAP.UIDRetrieve(msguid, IdMessage)
then begin
//{*} add2log(LOG_Info, msguid + ' ' + IdMessage.MsgId);
filename := MsgIdToFileName(IdMessage.MsgId);
IdMessage.SaveToFile(path + filename);
if FileExists(path + filename)
then begin
// После этого можно со спокойной совестью удалять письмо из ящика
if not IdIMAP.UIDDeleteMsg(msguid)
then begin
// Ошибка - Удаление не прошло
// {*} add2log(LOG_Error, 'Удаление не прошло');
end;
result := result + 1;
end else begin
// Ошибка - Сохранить не получилось
end;
end else begin
// Ошибка - Не получилось принять сообщение # + IntToStr(i)
//{*} add2log(LOG_Error, 'Не получилось принять сообщение UID#' + msguid);
end;
end;
// Перепаковать выбраный ящик
if not IdIMAP.ExpungeMailBox()
then begin
// Ошибка - Ликвидация провалилась
end;
end else begin
//{*} add2log(LOG_Info, 'Not retrieve messages #');
end;
finally
amsglist.Free();
end else begin
// Ошибка - Не удалось выбрать почтовый ящик
//{*} add2log(LOG_Error, 'Не удалось выбрать почтовый ящик');
end;
finally
IdIMAP.Disconnect();
end else begin
// Ошибка - Не удалось подключиться к IMAP4
//{*} add2log(LOG_Error, 'Не удалось подключиться к IMAP4');
end;
end;
antonio_b (2006-01-11 11:58:00) [2]Спасибо за пример!
umbra (2006-01-11 11:37:00) [3]http://www.indyproject.org/DemoDownloads/Indy_10_IMAP4Client.zip
Ega23 (2006-01-11 10:49:00) [4]TIdImap4 + F1