
다양한 이메일 클라이언트와 플랫폼의 사용은 종종 여러 이메일 저장 형식의 생성을 초래합니다. 한편으로 이러한 형식은 콘텐츠를 구문 분석하는 데 도전이 될 수 있습니다. 다른 한편으로는 데이터 저장 또는 웹 서비스의 고장 시 복원하는 데 없어서는 안 될 존재입니다. 이 기사에서는 이러한 형식 각각을 자세히 살펴보고 Aspose.Email을 활용하여 주요 5가지 파일 형식의 이메일 콘텐츠를 추출, 나열 및 검색하는 방법을 시연할 것입니다.
저장 파일을 처리하기 위한 C# API
저장 파일 처리를 위해 복잡한 이메일 관련 작업 및 상호 작용을 간소화하기 위해 설계된 다목적 API를 사용할 것입니다. Aspose.Email for .NET은 개발자가 PST, OST, MBOX, EML, MSG 등 다양한 형식의 이메일 데이터와 원활하게 상호작용하는 애플리케이션을 만들 수 있도록 지원합니다. 풍부한 기능 세트와 사용자 친화적인 방법으로, 파일에 저장된 이메일 데이터의 조작, 추출 및 관리는 쉬워지고 직관적이 됩니다. API의 힘을 활용하려면, DLL을 다운로드하거나 다음 명령을 사용하여 NuGet에서 설치하세요:
PM> Install-Package Aspose.Email
다양한 형식의 저장 파일 처리하기
PST (개인 저장소 테이블) 파일 읽기
PST는 Microsoft Outlook에서 이메일, 연락처, 캘린더 및 기타 데이터를 저장하는 데 사용하는 파일 형식입니다. Aspose.Email은 이메일, 첨부파일 및 폴더 구조와 같은 항목을 추출하고 검색하는 방법을 제공하여 PST 파일 처리를 간소화합니다. 이 라이브러리를 사용하면 개발자는 프로그래밍 방식으로 PST 콘텐츠에 액세스하고 특정 항목을 검색하며 다양한 형식으로 내보낼 수 있습니다. 아래의 코드 샘플에서는 PST 형식의 파일을 읽는 방법을 보여줍니다:
- 시작하려면 PersonalStorage 클래스의 FromFile 메서드를 사용하여 pst 파일을 로드합니다.
- pst 객체의 RootFolder 속성에서 GetSubfolder() 메서드를 사용하여 PST 내의 “받은 편지함” 폴더에 액세스합니다.
- 폴더 객체에서 EnumerateMessages() 메서드를 사용하여 폴더의 각 메시지를 반복합니다.
- pst 객체의 ExtractMessage() 메서드를 사용하여 각 msgInfo 객체의 EntryIdString 속성을 전달하여 메시지를 추출합니다.
- 메시지의 내용을 액세스합니다:
- msg 객체의 Subject 속성을 사용하여 메시지의 제목을 가져옵니다.
- msg 객체의 SenderEmailAddress 속성을 사용하여 메시지의 발신자 주소를 가져옵니다.
- msg 객체의 Body 속성을 사용하여 메시지의 본문을 가져옵니다.
// Load the PST file | |
using (var pst = PersonalStorage.FromFile(filename) | |
{ | |
// Access the desired folder within the PST | |
var folder = pst.RootFolder.GetSubfolder("Inbox"); | |
// Enumerate and list messages in the folder | |
foreach(var msgInfo in folder.EnumerateMessages()) | |
{ | |
var msg = pst.ExtractMessage(msgInfo.EntryIdString); | |
//Access the contents of the message | |
// Get subject | |
Console.WriteLine("Subject:" + msg.Subject); | |
// Get from address | |
Console.WriteLine("From:" + msg.SenderEmailAddress); | |
// Get body | |
Console.WriteLine("Body" + msg.Body); | |
} | |
} |
OST (Outlook 오프라인 저장소 테이블) 파일 읽기
OST 파일은 Microsoft Exchange의 메일박스 데이터의 오프라인 복사본 역할을 합니다. Aspose.Email은 OST 파일에서 데이터를 추출할 수 있게 하여 개발자가 이메일, 폴더 및 첨부파일을 검색할 수 있도록 합니다. 이는 특히 백업 솔루션을 만들거나 서로 다른 플랫폼 간에 데이터를 마이그레이션할 때 유용합니다. OST 파일을 구문 분석하는 데 사용되는 기능 세트는 PST와 동일하므로 위의 코드 샘플을 사용하여 OST 파일의 올바른 경로를 지정하면 됩니다.
OLM (Outlook for Mac 아카이브) 파일 읽기
OLM은 Microsoft Outlook for Mac에서 이메일, 연락처 및 기타 데이터를 저장하는 데 사용하는 저장 형식입니다. Aspose.Email을 사용하면 개발자가 OLM 파일에서 콘텐츠를 추출할 수 있으며, 여기에는 이메일 및 첨부파일이 포함됩니다. 이 기능은 크로스 플랫폼 데이터 마이그레이션 또는 백업 시스템 생성에 중요합니다. 다음 코드 샘플과 단계는 API를 사용하여 Outlook for Mac 파일을 구문 분석하는 방법을 보여줍니다:
- OlmStorage 클래스의 인스턴스를 생성하고 생성자를 사용하여 OLM 파일을 로드합니다.
- olm 객체에서 GetFolder() 메서드를 사용하여 “받은 편지함"으로 폴더에 액세스하며, 폴더가 존재하지 않으면 생성하도록 지정합니다.
- 폴더 객체에서 EnumerateMessages() 메서드를 사용하여 폴더의 각 메시지를 반복합니다.
- olm 객체의 ExtractMapiMessage() 메서드를 사용하여 msgInfo 객체를 전달하여 메시지를 추출합니다.
- 메시지의 내용을 액세스합니다:
- msg 객체의 Subject 속성을 사용하여 메시지의 제목을 가져옵니다.
- msg 객체의 SenderEmailAddress 속성을 사용하여 메시지의 발신자 주소를 가져옵니다.
- msg 객체의 Body 속성을 사용하여 메시지의 본문을 가져옵니다.
// Load the OLM file | |
using (var olm = new OlmStorage(filename)) | |
{ | |
// Access the desired folder within the OLM | |
var folder = olm.GetFolder("Inbox", true); | |
// Enumerate and list messages in the folder | |
foreach (var msgInfo in folder.EnumerateMessages()) | |
{ | |
var msg = olm.ExtractMapiMessage(msgInfo); | |
//Access the contents of the message | |
// Get subject | |
Console.WriteLine("Subject:" + msg.Subject); | |
// Get from address | |
Console.WriteLine("From:" + msg.SenderEmailAddress); | |
// Get body | |
Console.WriteLine("Body" + msg.Body); | |
} | |
} |
MBOX (메일박스) 파일 읽기
MBOX는 이메일 메시지를 저장하는 데 널리 사용되는 형식입니다. 많은 이메일 클라이언트와 플랫폼에서 지원합니다. Aspose.Email은 MBOX 파일에서 이메일 및 첨부파일을 추출하고 검색할 수 있게 하여 개발자가 프로그래밍 방식으로 이메일 데이터와 작업할 수 있도록 합니다. 다음 코드 조각을 사용하여 mbox 파일을 구문 분석해 보세요:
- MboxStorageReader 클래스의 CreateReader() 메서드를 사용하여 MBOX 파일을 로드합니다. 이때 MboxLoadOptions를 사용합니다.
- mbox 객체에서 EnumerateMessageInfo() 메서드를 사용하여 mbox의 각 메시지를 반복합니다.
- mbox 객체의 ExtractMessage() 메서드를 사용하여 mbox에서 메시지 콘텐츠를 추출합니다. 이때 EntryId 및 EmlLoadOptions를 전달합니다.
- 메시지의 내용을 액세스합니다:
// Load the MBOX file | |
using (var mbox = MboxStorageReader.CreateReader(fileName, mboxLoadOptions)) | |
{ | |
// Enumerate and list messages in the folder | |
foreach (var msgInfo in mbox.EnumerateMessageInfo()) | |
{ | |
var eml = mbox.ExtractMessage(messageInfo.EntryId, emlLoadOptions); | |
//Access the contents of the message | |
// Get subject | |
Console.WriteLine("Subject:" + eml.Subject); | |
// Get from address | |
Console.WriteLine("From:" + eml.From); | |
// Get body | |
Console.WriteLine("Body" + eml.Body); | |
} | |
} |
TGZ (압축된 Tar 아카이브) 파일 읽기
TGZ는 Zimbra 이메일 클라이언트에서 이메일 백업 데이터를 저장하는 데 자주 사용되는 압축된 아카이브 형식입니다. Aspose.Email은 TGZ 파일에서 이메일 콘텐츠를 추출할 수 있게 하여 이러한 아카이브 내의 이메일 데이터에 접근하고 조작할 수 있도록 합니다. 다음 코드 조각과 단계는 tgz 파일을 읽는 방법을 보여줍니다:
- TgzReader 클래스의 인스턴스를 생성하고 생성자를 사용하여 TGZ 파일을 로드합니다.
- 폴더 객체에서 ReadNextMessage() 메서드를 사용하여 ‘받은 편지함’ 폴더의 각 항목을 반복합니다.
- CurrentMessage 속성을 사용하여 각 항목에서 메시지 콘텐츠를 추출합니다.
- 추출한 메시지 콘텐츠로 원하는 작업을 수행합니다.
using (var tgzReader = new TgzReader(fileName)) | |
{ | |
while (reader.ReadNextMessage()) | |
{ | |
if (reader.CurrentDirectory == "Inbox") | |
{ | |
var eml = reader.CurrentMessage; | |
//Access the contents of the message | |
// Get subject | |
Console.WriteLine("Subject:" + eml.Subject); | |
// Get from address | |
Console.WriteLine("From:" + eml.From); | |
// Get body | |
Console.WriteLine("Body" + eml.Body); | |
} | |
} | |
} |
결론
이 기사에서는 C#에서 가장 인기 있는 형식의 저장 파일을 프로그래밍 방식으로 처리하는 방법을 탐색했습니다. 우리의 직관적인 코드 샘플은 프로젝트에서 기본 기능을 구현하는 방법을 보여주었습니다. 저장 파일의 로드, 나열 및 콘텐츠 액세스는 이제 Aspose.Email for .NET과 함께 더 쉬워졌습니다. 이 API는 .NET 애플리케이션에 이메일 관련 기능을 통합하는 원활한 방법을 제공합니다. 라이브러리가 제공할 수 있는 내용은 우리의 문서에서 더 알아보세요. 도움이 필요하거나 조언이 필요하면 무료 지원 포럼에 문의해 주세요.