Antananarivu
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: nit Unit222; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3; type TForm1 = class(TForm) Button1: TButton; POP3: TIdPOP3; IdMessage: TIdMessage; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; intIndex:integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); label f; var mailcicl:integer; partstr:integer; s:string; addr:string; begin POP3.Host:='pop.mail.ru'; POP3.Port:=110; POP3.UserID:='antananarivu83@mail.ru'; POP3.Password:='******'; addr:=ExtractFilePath(Application.ExeName); POP3.Connect; for mailcicl:=1 to POP3.CheckMessages do begin if POP3.CheckMessages<1 then goto f ; IdMessage.Clear; Memo1.Clear; POP3.Retrieve(mailcicl,IdMessage); for intIndex := 0 to IdMessage.MessageParts.Count-1 do begin if IdMessage.MessageParts.Items[intIndex].ClassType=TIdattachment then begin TIdAttachment(IdMessage.MessageParts.Items[intIndex]).SaveToFile( TIdAttachment(Idmessage.MessageParts.Items[intIndex]).Filename); TIdAttachment.Create(Idmessage.MessageParts, TIdAttachment(Idmessage.MessageParts.Items[intIndex]).Filename) end; if IdMessage.MessageParts.Items[intIndex].ClassType=TidText then begin For PartStr:=0 to TIdText(IdMessage.MessageParts.Items[IntIndex]).Body.Count-1 do begin s:=TIdText(IdMessage.MessageParts.Items[intIndex]).Body.Strings[PartStr]; memo1.Lines.Add(s); end; Memo1.Lines.SaveToFile(addr+inttostr(mailcicl)+'.txt'); end; end; POP3.Delete(mailcicl); end; f: POP3.Disconnect; end; end. | Все работает, скачивает почту, сохраняет текст письма в текстовой файл, сохраняет вложение. НО! Иногда почему-то вложение не скачивается и это вроде как происходит тогда, когда первое обрабатываемое письмо не содержит вложения. Буду рад любой помощи, с чем это может быть связано? Добавлено: Так.. потестил процедуру. Проблема возникает с теми файлами, название которых содержит русские буквы... видимо, проблема с кодировкой... Но главное даже не это (хотя если кто с кодировками поможет, буду рад), главное то, что почему-то еще не скачиваются файлы размером больше 10-12 мегабайт (ориентировочно, я точнее не проверял). С чем это может быть связано ума не приложу... Добавлено: Так, потестил еще немного - размер файлов тут не причем, не закачиваются файлы в названии которых есть символ подчеркивания... кто-нибудь с этим сталкивался? |