Как получать электронные письма с помощью indy 10 и delphi 7 с вложенным файлом?

Как получать электронные письма с помощью indy 10 и delphi 7 с вложенным файлом?


person kapil sharma    schedule 17.03.2011    source источник
comment
Вы читаете электронные письма с сервера POP3, используя компоненты Indy, и у вас возникают проблемы с чтением вложений? Я спрашиваю, потому что в противном случае совершенно правильный ответ: Инди не имеет к этому никакого отношения, попросите кого-нибудь отправить вам электронное письмо. Если да, то что вы уже сделали? Отредактируйте свой вопрос и покажите код.   -  person Cosmin Prund    schedule 17.03.2011


Ответы (3)


Это рабочий код Indy 10. «Файлы» — это список строк, который содержит список загруженных вложений — меня интересуют вложения, а не сами письма.

with IdPop31 do
begin
  ConnectTimeout := 5000;
  Connect;
  try
    files.Clear;
    for i := 1 to checkmessages do
    begin
      msg.clear;
      flag := false;
      if retrieve (i, msg) then
      begin
        for j := 0 to msg.MessageParts.Count-1 do
        begin
          if msg.MessageParts[j] is TIdAttachment then
          begin
            with TIdAttachment(msg.MessageParts[j]) do
            begin
              s := IncludeTrailingPathDelimiter(mydir) + ExtractFileName(FileName);
              log ('Downloaded ' + s);
              if not FileExists(s) then
              begin
                SaveToFile(s);
                files.Add(s);
              end;
             end;
            end;
            flag := true;
          end;
        end;
      end;
      if flag then Delete(i);  // remove the email from the server
    end;
  finally
    Disconnect;
  end
end;
person No'am Newman    schedule 17.03.2011

Вложения хранятся как объекты TIdAttachment в коллекции TIdMessage.MessageParts.

person Remy Lebeau    schedule 17.03.2011
comment
не могли бы вы предоставить мне полный код, где я могу получить почту и файлы вложений или любой рабочий или проверенный пример, который будет действительно полезен, заранее спасибо. - person kapil sharma; 17.03.2011
comment
kapil - люди здесь ждут, что ты что-то ПОПРОБУЕШЬ, а потом расскажешь нам, где ты застрял. Ты кажешься мне ленивым. - person Warren P; 17.03.2011

Ваш код работает нормально, но нуждается в исправлении в разделе «начало-конец», где определяется «s». Если "ИмяФайла" пусто, программа должна пропустить сохранение. Вероятно, вы перерезали эту строку и «конец» висит.

person Zikica    schedule 22.10.2016