OLM to PST

Microsoft Outlook는 Windows 및 Mac 운영 체제에서 사용할 수 있습니다. Outlook for Mac과 Outlook for Windows는 사용자 이메일을 데이터 파일에 저장합니다. 이러한 데이터 파일은 모든 이메일, 연락처, 작업, 메모 및 일정 항목으로 구성됩니다. Outlook for Mac은 OLM 파일에 메일박스 항목을 저장하지만, 이는 Outlook for Windows에서 지원되지 않습니다. 따라서 Outlook for Mac (OLM) 파일을 Outlook for Windows에서 열 수는 없습니다. Outlook for Mac에서 Outlook for Windows로 메일박스를 마이그레이션하려면 Outlook for Mac OLM 파일을 Outlook PST 파일 형식으로 변환해야 합니다. 이 문서에서는 C#에서 OLM 파일을 PST 파일로 프로그래밍 방식으로 변환하는 방법을 다룹니다.

이 문서에서는 다음 주제를 다룹니다:

OLM을 PST로 변환하는 C# API

OLM을 PST로 변환하기 위해 Aspose.Email for .NET을 사용할 것입니다. 이는 이메일을 조작하고 Thunderbird, Outlook 등의 인기 이메일 클라이언트의 파일 형식과 작업할 수 있는 이메일 처리 API입니다. 다음 명령을 사용하여 API의 DLL을 다운로드하거나 NuGet에서 설치할 수 있습니다.

PM> Install-Package Aspose.Email

OLM을 PST로 변환하는 단계

다음 단계를 따라 OLM 파일을 PST로 변환할 수 있습니다:

  • 새로운 PST 파일을 생성하고 쓰기 위해 엽니다.
  • 소스 OLM 파일을 엽니다.
  • OLM에서 각 메일박스 항목을 읽고 PST로 씁니다.

다음 섹션에서는 이러한 단계를 C#으로 변환하여 OLM에서 PST로 파일을 변환하는 방법을 설명합니다.

C#를 사용하여 OLM을 PST로 프로그래밍 방식으로 변환하기

다음 단계를 따라 C#에서 프로그래밍 방식으로 OLM을 PST로 변환할 수 있습니다:

  • 먼저, 소스 OLM을 열기 위해 OlmStorage 클래스의 인스턴스를 생성합니다.
  • 다음으로, Create 메서드를 사용하여 새로운 PST 파일을 생성합니다.
  • 또한, 메세지 클래스를 폴더 클래스에 매핑하는 GetContainerClass 함수를 생성하여, 해당 메세지 클래스를 포함하는 PST 폴더를 생성할 수 있습니다.
  • 마지막으로, EnumerateMapiMessages 메서드를 사용하여 OLM에서 각 폴더와 그 메시지를 재귀적으로 읽고, AddSubFolderAddMessage 메서드를 사용하여 동일한 순서로 PST에 추가하는 AddToPst 함수를 생성합니다.

다음 코드 샘플은 C#에서 OLM을 PST로 변환하는 방법을 보여줍니다.

메인 메서드:

// create an instance of OlmStorage class to open source OLM
using (var olm = new OlmStorage("my.olm"))
// create a new PST file
using (var pst = PersonalStorage.Create("my.pst", FileFormatVersion.Unicode))
{
// recursively reads each folder and its messages
// and adds them to the PST in the same order
foreach (var olmFolder in olm.FolderHierarchy)
{
AddToPst(pst.RootFolder, olmFolder);
}
}

GetContainerClass 함수:

public string GetContainerClass(string messageClass)
{
if (messageClass.StartsWith("IPM.Contact") || messageClass.StartsWith("IPM.DistList"))
{
return "IPF.Contact";
}
if (messageClass.StartsWith("IPM.StickyNote"))
{
return "IPF.StickyNote";
}
if (messageClass.StartsWith("IPM.Activity"))
{
return "IPF.Journal";
}
if (messageClass.StartsWith("IPM.Task"))
{
return "IPF.Task";
}
if (messageClass.StartsWith("IPM.Appointment") || messageClass.StartsWith("IPM.Schedule.meeting"))
{
return "IPF.Appointment";
}
return "IPF.Note";
}

AddToPst 함수:

public void AddToPst(FolderInfo pstFolder, OlmFolder olmFolder)
{
FolderInfo pstSubFolder = pstFolder.GetSubFolder(olmFolder.Name);
foreach (var msg in olmFolder.EnumerateMapiMessages())
{
if (pstSubFolder == null)
{
pstSubFolder = pstFolder.AddSubFolder(olmFolder.Name, GetContainerClass(msg.MessageClass));
}
pstSubFolder.AddMessage(msg);
}
if (pstSubFolder == null)
{
pstSubFolder = pstFolder.AddSubFolder(olmFolder.Name);
}
foreach (var olmSubFolder in olmFolder.SubFolders)
{
AddToPst(pstSubFolder, olmSubFolder);
}
}

무료 API 라이센스 받기

무료 임시 라이센스을 사용하여 평가 제한 없이 Aspose.Email for .NET을 사용할 수 있습니다.

결론

이 문서에서는 C# .NET에서 OLM을 PST로 변환하는 방법을 배웠습니다. 또한 OLM 저장소에서 메시지를 읽고 PST 저장소에 아이템을 프로그래밍 방식으로 작성하는 방법을 보았습니다. 그 외에도 문서를 방문하여 Aspose.Email for .NET의 다른 기능을 탐색할 수 있습니다. 질문이 있는 경우 우리 포럼에 게시할 수 있습니다.

참고