1. 제품
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS - Aspose.Email .NET용 FOSS

Outlook MSG 파일, CFB 컨테이너 및 EML 메시지를 .NET에서 읽고, 생성하고, 처리합니다 — 무료이며 오픈소스, Microsoft Outlook 의존성이 없습니다.

MSG, CFB 및 EML 파일용 오픈소스 .NET 라이브러리

Aspose.Email FOSS for .NET은 MIT 라이선스를 갖춘 종속성이 없는 C# 라이브러리로, Microsoft Outlook .msg 파일, Compound File Binary (CFB) 컨테이너 및 EML 메시지를 처리합니다. 단일 NuGet 패키지를 추가하면 Microsoft Outlook이나 독점 런타임을 설치하지 않고도 즉시 이메일 메시지를 읽고, 만들고, 처리할 수 있습니다.

이 라이브러리는 두 가지 수준의 액세스를 제공합니다. 낮은 수준에서는 CfbReaderCfbWriter가 CFB 바이너리 컨테이너에 대한 완전한 제어를 제공하며 — 디렉터리 항목을 탐색하고, 스토리지 노드와 스트림 데이터를 읽고 쓰며, 원시 섹터 레이아웃을 검사합니다. MsgReaderMsgWriter는 CFB 위에 있는 MSG 형식을 처리하여 MAPI 속성 스트림, 수신자 테이블 및 첨부 파일 하위 스토리지를 노출합니다. 높은 수준에서는 MapiMessage를 사용하여 처음부터 새 메시지를 만들고, 제목, 본문, 발신자 및 수신자를 읽으며, 첨부 파일을 관리하고, 내장된 MIME 구현을 통해 MSG와 EML 형식 간에 변환할 수 있습니다.

이 라이브러리는 .NET 8.0 이상을 대상으로 하며 네이티브 종속성이 없어 Windows, Linux, macOS, Docker 컨테이너 및 서버리스 함수에 적합합니다. 추가 기능 및 상업적 지원은 Aspose.Email for .NET을(를) 참조하십시오.

CFB 컨테이너 읽기 및 쓰기

  • Open CFB files: 파일 경로, 스트림 또는 바이트 배열을 통해 기존 CFB 컨테이너를 CfbReader.FromFile(), CfbReader.FromStream(), 또는 new CfbReader(data) 로 로드합니다.
  • 디렉터리 트리를 순회합니다: 스토리지, 스트림 및 자식을 IterStorages(), IterStreams(), IterChildren(), 및 IterTree()을 사용하여 반복합니다.
  • 경로 해결: ResolvePath(names)를 사용하여 중첩된 스토리지 계층을 탐색하고 이름 체인으로 특정 스트림을 찾습니다.
  • CFB 컨테이너 쓰기: CfbDocument을 사용하여 CFB 문서를 프로그래밍 방식으로 빌드하고, CfbWriter.ToBytes() 또는 CfbWriter.WriteFile()을 통해 바이트 또는 파일로 직렬화합니다.
  • 스토리지 및 스트림 추가: 직렬화하기 전에 모든 스토리지 노드에 CfbStorageCfbStream 노드를 연결합니다.

CFB 액세스가 사용되는 위치

  • MSG 파일 검사: CFB는 Outlook .msg 파일의 컨테이너 형식이며 — 직접 CFB 액세스를 통해 포렌식 검사 및 복구가 가능합니다.
  • Custom binary formats: CFB를 데이터 저장에 사용하는 기존 레거시 애플리케이션은 COM 종속성 없이 읽거나 쓸 수 있습니다.
  • 데이터 복구: 전체 디렉터리 트리를 탐색하고 손상되었거나 비표준 CFB 파일에서 원시 스트림 바이트를 추출합니다.
  • Binary round-trip testing: 문서를 바이트로 직렬화하고 다시 로드하여 자동화된 테스트에서 손실 없는 직렬화를 검증합니다.

MSG 파일 읽기 및 쓰기

  • Read MSG files: Outlook MSG 파일을 MsgReader.FromFile() 또는 MsgReader.FromStream() 로 열고 기본 MAPI 속성 스트림, 수신자 레코드 및 첨부 파일 하위 저장소에 접근합니다.
  • MSG 파일 작성: MsgDocument에서 MsgWriter.ToBytes() 또는 MsgWriter.WriteFile()를 사용하여 MSG 파일을 생성합니다.
  • Low-level MAPI access: 상위 수준 속성 스트림, 명명된 속성 및 첨부 데이터를 MsgStorage, MsgStream, 및 MsgStorage.FindStream()을 통해 읽습니다.
  • MSG 저장소 탐색: MsgStorage.FindStream()MsgStorage.FindStorage()를 사용하여 명명된 하위 항목을 찾으세요.

MSG 처리가 사용되는 곳

  • Email archival pipelines: 아카이브 디렉터리에서 .msg 파일을 대량 읽고 메타데이터 또는 첨부 파일을 추출합니다.
  • Migration tools: MSG 컬렉션을 표준 형식으로 변환하여 Outlook이 아닌 시스템에 가져올 수 있도록 합니다.
  • Legal discovery: 원시 MAPI 속성 스트림을 구문 분석하여 비표준 속성을 포함한 모든 메시지 필드를 추출합니다.
  • 자동 보고서 전달: .msg 파일을 프로그래밍 방식으로 생성하고 Outlook 기반 메일 시스템에 전달합니다.

고수준 메시지 API

  • 메시지 만들기: 전체 이메일을 MapiMessage.Create(subject, body)와 함께 구축하고, SenderName, SenderEmailAddress, 및 HtmlBody를 설정합니다.
  • 수신자 추가: To, Cc, 및 Bcc 수신자를 AddRecipient()을 통해 이메일 주소와 표시 이름으로 첨부합니다.
  • 첨부 파일 관리: 파일 및 스트림 첨부 파일을 AddAttachment()으로 추가하거나 MapiAttachment 객체를 Filename, MimeType, ContentId, 및 Data으로 직접 구성합니다.
  • 저장 및 다시 로드: message.Save() 또는 message.Save(stream) 로 직렬화하고 MapiMessage.FromFile() 또는 MapiMessage.FromStream() 로 다시 로드합니다.

고수준 API가 사용되는 곳

  • 자동화된 이메일 생성: 배치 작업에서 데이터 레코드로부터 수천 개의 개인화된 MSG 파일을 생성합니다.
  • 테스트 픽스처 생성: 예측 가능한 내용의 알려진 좋은 MSG 파일을 통합 테스트 스위트를 위해 구축합니다.
  • Attachment extraction: MSG 파일을 로드하고, message.Attachments을 반복하며, 각 attachment.Data을 디스크에 저장합니다.
  • 속성 검사: message.Subject, message.Body, message.SenderEmailAddress, 및 message.Recipients에 COM 자동화 없이 액세스합니다.

EML 및 MIME 변환

  • Load EML into MapiMessage: 표준 .eml 파일 (RFC 5322 / MIME)을 전체 MapiMessage 객체로 MapiMessage.LoadFromEml(stream)를 통해 구문 분석합니다.
  • Save MapiMessage as EML: MapiMessage을(를) message.SaveToEml() 또는 message.SaveToEml(stream)를 사용하여 MIME 형식으로 다시 직렬화합니다.
  • Round-trip fidelity: 제목, 본문, HTML 본문, 발신자, 수신자 및 첨부 파일은 EML → MSG → EML 라운드‑트립을 통해 모두 보존됩니다.
  • 외부 MIME 파서 없음: EML 파싱은 라이브러리 내에서 네이티브로 구현됩니다 — System.Net.Mail 종속성이 필요하지 않습니다.

EML 변환이 사용되는 곳

  • Format bridging: 메일 서버에서 EML 형식으로 이메일을 수신하고 Outlook 호환 저장을 위해 MSG로 변환합니다.
  • 표준 준수: 독점 MSG 파일을 표준 MIME으로 변환하여 모든 메일 전송에 전달합니다.
  • 아카이브 정규화: 혼합된 .eml.msg 파일을 단일 형식으로 정규화합니다.
  • Testing workflows: 테스트에서 .eml 픽스처를 생성하고, MSG 라운드트립 동안 데이터 손실 없이 유지되는지 확인합니다.

MSG 파일에서 제목 읽기

스트림에서 Outlook MSG 파일을 열고 제목을 출력합니다 — Microsoft Outlook이 필요 없습니다.

using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

MSG 메시지를 생성하고 저장

보낸 사람, 수신자 및 첨부 파일이 포함된 전체 이메일을 만든 후 MSG 파일에 기록합니다.

using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);

EML을 MSG로 변환

표준 .eml 파일을 로드하고 내장 MIME 파서를 사용하여 Outlook .msg 파일로 저장합니다.

using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
  

지원 및 학습 자료

 한국어