Aspose.Email FOSS for .NET은 MIT 라이선스를 갖춘 종속성이 없는 C# 라이브러리로, Microsoft Outlook .msg 파일, Compound File Binary (CFB) 컨테이너 및 EML 메시지를 처리합니다. 단일 NuGet 패키지를 추가하면 Microsoft Outlook이나 독점 런타임을 설치하지 않고도 즉시 이메일 메시지를 읽고, 만들고, 처리할 수 있습니다.
이 라이브러리는 두 가지 수준의 액세스를 제공합니다. 낮은 수준에서는 CfbReader와 CfbWriter가 CFB 바이너리 컨테이너에 대한 완전한 제어를 제공하며 — 디렉터리 항목을 탐색하고, 스토리지 노드와 스트림 데이터를 읽고 쓰며, 원시 섹터 레이아웃을 검사합니다. MsgReader와 MsgWriter는 CFB 위에 있는 MSG 형식을 처리하여 MAPI 속성 스트림, 수신자 테이블 및 첨부 파일 하위 스토리지를 노출합니다. 높은 수준에서는 MapiMessage를 사용하여 처음부터 새 메시지를 만들고, 제목, 본문, 발신자 및 수신자를 읽으며, 첨부 파일을 관리하고, 내장된 MIME 구현을 통해 MSG와 EML 형식 간에 변환할 수 있습니다.
이 라이브러리는 .NET 8.0 이상을 대상으로 하며 네이티브 종속성이 없어 Windows, Linux, macOS, Docker 컨테이너 및 서버리스 함수에 적합합니다. 추가 기능 및 상업적 지원은 Aspose.Email for .NET을(를) 참조하십시오.
CfbReader.FromFile(), CfbReader.FromStream(), 또는 new CfbReader(data) 로 로드합니다.IterStorages(), IterStreams(), IterChildren(), 및 IterTree()을 사용하여 반복합니다.ResolvePath(names)를 사용하여 중첩된 스토리지 계층을 탐색하고 이름 체인으로 특정 스트림을 찾습니다.CfbDocument을 사용하여 CFB 문서를 프로그래밍 방식으로 빌드하고, CfbWriter.ToBytes() 또는 CfbWriter.WriteFile()을 통해 바이트 또는 파일로 직렬화합니다.CfbStorage 및 CfbStream 노드를 연결합니다..msg 파일의 컨테이너 형식이며 — 직접 CFB 액세스를 통해 포렌식 검사 및 복구가 가능합니다.MsgReader.FromFile() 또는 MsgReader.FromStream() 로 열고 기본 MAPI 속성 스트림, 수신자 레코드 및 첨부 파일 하위 저장소에 접근합니다.MsgDocument에서 MsgWriter.ToBytes() 또는 MsgWriter.WriteFile()를 사용하여 MSG 파일을 생성합니다.MsgStorage, MsgStream, 및 MsgStorage.FindStream()을 통해 읽습니다.MsgStorage.FindStream()와 MsgStorage.FindStorage()를 사용하여 명명된 하위 항목을 찾으세요..msg 파일을 대량 읽고 메타데이터 또는 첨부 파일을 추출합니다..msg 파일을 프로그래밍 방식으로 생성하고 Outlook 기반 메일 시스템에 전달합니다.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() 로 다시 로드합니다.message.Attachments을 반복하며, 각 attachment.Data을 디스크에 저장합니다.message.Subject, message.Body, message.SenderEmailAddress, 및 message.Recipients에 COM 자동화 없이 액세스합니다..eml 파일 (RFC 5322 / MIME)을 전체 MapiMessage 객체로 MapiMessage.LoadFromEml(stream)를 통해 구문 분석합니다.MapiMessage을(를) message.SaveToEml() 또는 message.SaveToEml(stream)를 사용하여 MIME 형식으로 다시 직렬화합니다..eml 및 .msg 파일을 단일 형식으로 정규화합니다..eml 픽스처를 생성하고, 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 파일에 기록합니다.
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 파일을 로드하고 내장 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);