자주 묻는 질문 — Aspose.Email FOSS for .NET
라이선스
Aspose.Email.Foss는 어떤 라이선스를 사용합니까?
MIT 라이선스. 라이선스 키가 필요하지 않습니다. 개인, 상업 및 오픈 소스 프로젝트에서 자유롭게 사용하십시오.
설치
Aspose.Email.Foss는 어떻게 설치하나요?
dotnet add package Aspose.Email.Foss필요한 .NET 버전은 무엇인가요?
.NET 8.0 이상. 이 라이브러리는 .NET Framework 또는 .NET Standard를 지원하지 않습니다.
네이티브 종속성이 있나요?
아니요. 이 라이브러리는 순수 관리형 C#이며 네이티브 종속성이 없습니다. 다음 환경에서 동일하게 실행됩니다 Windows, Linux, macOS, Docker 및 서버리스 환경.
형식 지원
지원되는 이메일 형식은 무엇입니까?
| 형식 | 읽기 | 쓰기 |
|---|---|---|
| MSG (Outlook) | ✓ | ✓ |
| CFB (Compound File Binary) | ✓ | ✓ |
| EML (MIME / RFC 5322) | ✓ | ✓ |
EML 파일을 읽을 수 있나요?
예. MapiMessage.LoadFromEml(stream)을 사용하여 표준 .eml 파일을 MapiMessage에 로드합니다.
내장 MIME 파서는 접힌 헤더, base64 콘텐츠 및 multipart 메시지를 처리합니다.
MSG를 EML로 변환할 수 있나요?
예. 메모리 내 byte[] 출력을 위해 message.SaveToEml()을 호출하거나message.SaveToEml(stream)을 사용해 파일에 씁니다. 제목, 본문, HTML 본문, 발신자,
수신자 및 모든 첨부 파일이 보존됩니다.
TNEF (winmail.dat)가 지원되나요?
아니요. 표준 MSG (CFB) 및 EML (MIME) 형식만 지원됩니다.
IMAP/SMTP/POP3가 지원되나요?
아니요. 이 라이브러리는 MSG 파일을 직접 처리하며 네트워크/프로토콜 계층을 포함하지 않습니다.
API 사용
MSG 파일을 어떻게 로드하나요?
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("message.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);새 메시지를 어떻게 만들나요?
var message = MapiMessage.Create("Subject", "Body");
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
message.Save("output.msg");첨부 파일을 어떻게 추가하나요?
// From byte array
message.AddAttachment("file.pdf", pdfBytes, "application/pdf");
// From stream
using var stream = File.OpenRead("photo.png");
message.AddAttachment("photo.png", stream, "image/png");EML을 MSG로 변환하려면 어떻게 해야 하나요?
using var eml = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(eml);
message.Save("message.msg");CFB 구조에 원시적으로 어떻게 접근합니까?
using Aspose.Email.Foss.Cfb;
using var reader = CfbReader.FromFile("message.msg");
foreach (var entry in reader.IterChildren(CfbConstants.RootStreamId))
Console.WriteLine(entry.Name);알려진 제한 사항
구현되지 않은 메서드가 있나요?
현재 버전에는 의도적으로 구현되지 않은 스텁이 존재하지 않습니다.
캘린더/약속 지원이 제공되나요?
라이브러리는 MSG 파일을 일반적으로 처리합니다. 캘린더 전용 속성은 SetProperty() / GetPropertyValue()를 통해 CommonMessagePropertyId의 MAPI 속성 ID로 접근할 수 있지만, 전용 캘린더 또는 약속 API는 제공되지 않습니다.
스레드 안전성이 보장됩니까?
각 MapiMessage 및 CfbReader 인스턴스는 독립적입니다. 별도의 스레드에서 별개의 인스턴스에 대한 동시 접근은 안전합니다. 외부 동기화 없이 스레드 간에 단일 인스턴스를 공유하지 마십시오.