Parse Storage Files

다양한 이메일 클라이언트와 플랫폼의 사용은 종종 여러 이메일 저장 형식의 생성을 초래합니다. 한편으로 이러한 형식은 콘텐츠를 구문 분석하는 데 도전이 될 수 있습니다. 다른 한편으로는 데이터 저장 또는 웹 서비스의 고장 시 복원하는 데 없어서는 안 될 존재입니다. 이 기사에서는 이러한 형식 각각을 자세히 살펴보고 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 형식의 파일을 읽는 방법을 보여줍니다:

  1. 시작하려면 PersonalStorage 클래스의 FromFile 메서드를 사용하여 pst 파일을 로드합니다.
  2. pst 객체의 RootFolder 속성에서 GetSubfolder() 메서드를 사용하여 PST 내의 “받은 편지함” 폴더에 액세스합니다.
  3. 폴더 객체에서 EnumerateMessages() 메서드를 사용하여 폴더의 각 메시지를 반복합니다.
  4. pst 객체의 ExtractMessage() 메서드를 사용하여 각 msgInfo 객체의 EntryIdString 속성을 전달하여 메시지를 추출합니다.
  5. 메시지의 내용을 액세스합니다:
    • 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 파일을 구문 분석하는 방법을 보여줍니다:

  1. OlmStorage 클래스의 인스턴스를 생성하고 생성자를 사용하여 OLM 파일을 로드합니다.
  2. olm 객체에서 GetFolder() 메서드를 사용하여 “받은 편지함"으로 폴더에 액세스하며, 폴더가 존재하지 않으면 생성하도록 지정합니다.
  3. 폴더 객체에서 EnumerateMessages() 메서드를 사용하여 폴더의 각 메시지를 반복합니다.
  4. olm 객체의 ExtractMapiMessage() 메서드를 사용하여 msgInfo 객체를 전달하여 메시지를 추출합니다.
  5. 메시지의 내용을 액세스합니다:
    • 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 파일을 구문 분석해 보세요:

  1. MboxStorageReader 클래스의 CreateReader() 메서드를 사용하여 MBOX 파일을 로드합니다. 이때 MboxLoadOptions를 사용합니다.
  2. mbox 객체에서 EnumerateMessageInfo() 메서드를 사용하여 mbox의 각 메시지를 반복합니다.
  3. mbox 객체의 ExtractMessage() 메서드를 사용하여 mbox에서 메시지 콘텐츠를 추출합니다. 이때 EntryIdEmlLoadOptions를 전달합니다.
  4. 메시지의 내용을 액세스합니다:
    • eml 객체의 Subject 속성을 사용하여 메시지의 제목을 가져옵니다.
    • eml 객체의 From 속성을 사용하여 메시지의 발신자 주소를 가져옵니다.
    • eml 객체의 Body 속성을 사용하여 메시지의 본문을 가져옵니다.
// 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 파일을 읽는 방법을 보여줍니다:

  1. TgzReader 클래스의 인스턴스를 생성하고 생성자를 사용하여 TGZ 파일을 로드합니다.
  2. 폴더 객체에서 ReadNextMessage() 메서드를 사용하여 ‘받은 편지함’ 폴더의 각 항목을 반복합니다.
  3. CurrentMessage 속성을 사용하여 각 항목에서 메시지 콘텐츠를 추출합니다.
  4. 추출한 메시지 콘텐츠로 원하는 작업을 수행합니다.
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 애플리케이션에 이메일 관련 기능을 통합하는 원활한 방법을 제공합니다. 라이브러리가 제공할 수 있는 내용은 우리의 문서에서 더 알아보세요. 도움이 필요하거나 조언이 필요하면 무료 지원 포럼에 문의해 주세요.

참조