•  

ГлавнаяIndyЧастые вопросы по Indy → Необходимо организовать на Delphi прием и отправку письма, с аттачментом

Создано: 16.05.2014 21:49:20 · Исправлено: 16.05.2014 21:52:45 · Прочтений: 765

Доброго времени суток. Проблема в следующем: Необходимо организовать на Delphi прием и отправку письма, с аттачментом как принять/отправить письмо я то знаю, а вот как принять аттачмент в этом письме с индикатором процесса загрузки, и также отправить аттачмент тоже с индикатором. Delphi 7/indy/POP3 Очень помог бы код. зарание Спасибо.
// Присоединение файла к сообщению и определение размера сообщения
  try
    TIdAttachment.Create(fSMTPMsg.MessageParts, FileName);
  except
  on E:Exception do
    begin
      if b then fStatusFrame.LblProgress.Caption:=Не удалось присоединить файл к письму.;
      raise EFileAttachFailed.Create(FileName, E.Message);
    end;
  end;

//########################
  if b then
  begin
    MStream:=TMemoryStream.Create;
    try
      fSmtpMsg.SaveToStream(MStream);
    except
      MStream.Free;
      // fStatusFrame.LblProgress.Caption:=Не удалось определить размер сообщения.;
      raise;
    end;
    fMaxWorkCount:=MStream.Size;
    MStream.Free;
//################################
    // fStatusFrame.LblOperation.Caption:=Отправка письма.;
    GlbVars.ProcessMessages;

  end;
  //************************************
Код между решетками - пожалуй единственная возможность хотябы приблизительно определить размер отправляемого письма. Далее, чтобы отлеживать прогресс отправки письма используйте события OnWorkBegin, OnWork, OnWorkEnd... С получением дело обстоит хуже, ибо можно выяснить только размер всего ящика, а не отдельного письма. К тому же, Событие OnWorkBegin для каждого письма вызывается дважды: на получение заголовка и тела.
скачайте с оффсайта демо сэмплы - там все подробно расписано
Но теоретически, принимая письмо мы же узнаем что у него есть аттачмент, следовательно можно узнать и размер этого аттачмента, вот хотя бы взять Бат там эта функция реализованна. Показывается прогресс приема письма. на счет оффсайта, ссылочку можно? (просто я не понял откуда качать :))
Ну на счет прогресса я нашел кое что, но вот как принять аттачмент найти не могу, помогите пожалуйста. Как узнать что во первых он у письма имеется и во вторых сохранить его на диск