
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에서 각 폴더와 그 메시지를 재귀적으로 읽고, AddSubFolder 및 AddMessage 메서드를 사용하여 동일한 순서로 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의 다른 기능을 탐색할 수 있습니다. 질문이 있는 경우 우리 포럼에 게시할 수 있습니다.