uses IdMessage, IdMessageParts, IdAttachment, IdGlobalProtocols, ...; procedure SaveAttachmentsFromFile(FileName: String) var IdMessage: TIdMessage; MsgPart: TidMessagePart; HeaderMediaType: String; AttachtmentFileName: String begin // Create Message IdMessage := TIdMessage.Create(Self); try // Load eml file IdMessage.LoadFromFile(FileName); // Get Header Media Type HeaderMediaType := ExtractHeaderMediaType(IdMessage.ContentType); // Multipart if HeaderMediaType = 'multipart' then begin for I := IdMessage.MessageParts.Count-1 downto 0 do begin MsgPart := IdMessage.MessageParts[I]; if (MsgPart is TIdAttachment) then begin // Save File AttachtmentFileName:= TidAttachment(MsgPart).FileName; TidAttachment(MsgPart).SaveToFile(AttachtmentFileName); end; end; end; finally IdMessage.Destroy; end; end