Вложения письма.

Тема в разделе "Delphi - Сети", создана пользователем IliaIT, 17 авг 2010.

Статус темы:
Закрыта.
  1. IliaIT

    IliaIT Гость

    Столкнулся с тем что при принятии письма принимает и вложения (что в принципе естественно). но вот почему-то вложения остаются в винде в папке temp (C:\Documents and Settings\Администратор\Local Settings\Temp\) в виде файлов Ind87.tmp. Вопрос: как удалять вложения письма после принятия?

    на форме есть компоненты почты : TidPOP3, TIdMessage, TidSMTP.
    Прога в delphi 7.

    Код обработки писем.
    Код:
    Код (Delphi):
    procedure TForm1.Button3Click(Sender: TObject);
    var
    i: Integer;
    out_mail:boolean;
    begin
    try
    POP3.Host:=E_Host; // адресс почтового сервера
    POP3.Port:=strtoint(E_Port_p);        // порт по которому будет осуществляться подключение
    POP3.Username:=E_Username; // Логин пользователя
    POP3.Password:=E_Password;  // пароль пользователя
    POP3.Connect; // подключение по протоколу POP3, по настрокам в компоненте IdPOP3, с именем POP3
    i:=1;
    repeat
    Memo1.Clear;  // очистка компонента memo для отображения текста письма.
    IdMessage.Clear; // очистка буфера для сообщения
    out_mail:=POP3.Retrieve(i,IdMessage); // получение одного сообщения
    if out_mail then
    begin
    Memo1.Lines.AddStrings(IdMessage.Body); // передача сообщения из компонента IdMessage в memo
    // вывод в компоненты Label информации о сообщении.
    Label1.Caption := IdMessage.From.Text;
    Label2.Caption := IdMessage.Recipients.EmailAddresses;
    Label3.Caption := IdMessage.CCList.EMailAddresses;
    Label4.Caption := IdMessage.Subject;
    Label5.Caption := FormatDateTime('yyyy.mm.dd hh:mm:ss', IdMessage.Date);
    Label6.Caption := IdMessage.ReceiptRecipient.Text;
    Label7.Caption := IdMessage.Organization;
    if Label4.Caption=E_Subject then //проверка на нужное письмо тех. данных
    begin
    {ConectSQL;
    mail_data;
    DisConectSQL;
    POP3.Delete(i);}

    Memo2.Lines.Add('Получил 2');
    end;

    Memo2.Lines.Add('Получил 1 '+inttostr(i));

    i:=i+1;
    end;
    until not(out_mail);

    ms_text.Caption :='проверил почту '+datetimetostr(now());
    POP3.Disconnect; // разрыв связи
    except
    Save_log('ошибка в процедуре Button3Click, принятие почты');
    end;
    end;
    Если только руками удалять файлы, тогда вопрос как определить имя этого файла? ведь у них только вроде начало общее, и то не факт что это от этой проги. именно с этим началом файл. У письма может быть и 2 и более вложений, как следствие создастся несколько файлов(а они могут быть большие 2-5 метров).

    Да, забыл добавить, после перезагрузки проги файлы остаются, при перезагрузке компа они тоже остаются, винда 2003. да и комп перезагружается обычно не чаще 1 раз в 3-4 месяца.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей