소개

Aspose.Email FOSS for .NET은 무료이며 오픈소스인 C# 라이브러리로, Outlook MSG 파일, Compound File Binary (CFB) 컨테이너 및 EML 메시지를 .NET 애플리케이션에서 직접 작업할 수 있게 해줍니다 — Microsoft Outlook 없이, COM 인터옵 없이, 네이티브 라이브러리 없이도 됩니다. 단일 NuGet 패키지로 배포할 수 있으며 Windows, Linux, macOS, Docker 컨테이너 및 서버리스 함수에서 동일하게 실행됩니다.

이 라이브러리는 기업 및 통합 작업에서 반복적으로 발생하는 문제를 해결합니다: Outlook .msg 파일은 수백만 명의 비즈니스 사용자가 생성하지만, Outlook 없이 이를 파싱하려면 과거에 COM 자동화나 비용이 많이 드는 상용 라이브러리가 필요했습니다. Aspose.Email FOSS for .NET은 MSG, 기본 CFB 바이너리 컨테이너 및 EML/MIME 형식에 대한 완전한 읽기/쓰기 지원을 제공하며, 모두 MIT 라이선스 하에 사용 제한 없이 제공됩니다.

이 라이브러리는 이메일 아카이브 파이프라인, 마이그레이션 도구, 첨부 파일 추출기, 혹은 자동화된 MSG 생성기를 구축하든, 이메일 형식의 모든 바이트에 직접적인 저수준 접근을 제공하며, 몇 분 안에 시작할 수 있게 해주는 고수준 MapiMessage API도 제공합니다.


주요 기능

Outlook MSG 파일 읽기

MsgReader.FromFile() 또는 MsgReader.FromStream()를 사용하여 경로나 스트림에서 .msg 파일을 엽니다.
전체 MAPI 속성 스트림, 수신자 레코드 및 첨부 파일 하위 저장소에
원시 바이트 수준에서 MsgStorageMsgStream을 통해 접근합니다.

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 파일을 처음부터 만들기

MapiMessage.Create()를 사용하여 프로그래밍 방식으로 전체 이메일을 작성합니다. 제목, 일반 텍스트
본문, HTML 본문, 발신자 이름, 발신자 이메일 주소, 전송 시간 및 인터넷 메시지 ID를 설정한 다음
AddRecipient()으로 수신자를 추가하고 AddAttachment()로 첨부 파일을 추가합니다. 직렬화합니다.
message.Save().

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로 변환 (및 역변환)

표준 RFC 5322 .eml 파일을 MapiMessageMapiMessage.LoadFromEml()와 함께 로드한 다음, Outlook .msg 파일 — 또는 MapiMessage.SaveToEml()를 사용해 역으로 처리합니다. 내장 MIME 파서는 주제, 본문, HTML 본문, 발신자, 수신자 및 첨부 파일을 전체 EML ↔ 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);

저수준 CFB 컨테이너 액세스

Outlook MSG 파일은 파일 시스템과 유사한 계층형 바이너리 컨테이너인 Compound File Binary (CFB) 형식 위에 구축됩니다. CfbReader은 전체 디렉터리 트리를 노출합니다: IterStorages(), IterStreams(), IterChildren()를 사용하여 스토리지와 스트림을 반복하고, ResolvePath()를 사용해 경로로 특정 항목을 탐색하며, GetStreamData()를 사용해 원시 스트림 바이트를 읽습니다.

CfbWriter은 처음부터 CFB 문서를 구성하고 직렬화할 수 있게 합니다. CfbDocument을 만들고 CfbStorageCfbStream 노드를 첨부한 다음, CfbWriter.ToBytes() 또는 CfbWriter.WriteFile()을 호출하여 직렬화합니다.

MAPI 속성 및 첨부 파일 액세스

MapiPropertyCollection 클래스는 모든 MSG 또는 스토리지 객체에 대해 형식이 지정된 MAPI 속성 액세스를 제공합니다
객체: 표준 CommonMessagePropertyId 또는 PropertyTypeCode 열거형 값을 사용하여 Get(), Set(), Add()Remove()를 사용하십시오. 첨부 파일 메타데이터와 바이너리 데이터에 접근하려면
MapiAttachment 속성: Filename, MimeType, ContentIdData.


빠른 시작

패키지를 설치하세요:

dotnet add package Aspose.Email.Foss

MSG 파일에서 제목 읽기:

using System.IO;
using Aspose.Email.Foss.Msg;

using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
foreach (var recipient in message.Recipients)
    Console.WriteLine($"To: {recipient.EmailAddress}");
foreach (var attachment in message.Attachments)
    Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");

지원되는 형식

형식확장자읽기쓰기
Compound File Binary.cfb
Outlook Message.msg
MIME / EML.eml

오픈 소스 및 라이선스

Aspose.Email FOSS for .NET은 MIT 라이선스 하에 출시되었습니다. 개인, 상업 및 오픈 소스 프로젝트에서 사용 제한 없이 자유롭게
사용할 수 있습니다. 소스 코드는
github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.


시작하기