OLM을 PST로 변환
Contents
[
Hide
]
OLM 는 Microsoft Outlook for Mac에서 사용하는 데이터베이스 파일 형식입니다. OLM 파일은 이메일 메시지, 캘린더 데이터, 연락처 및 애플리케이션 설정을 저장하며 Windows용 Outlook에서는 지원되지 않습니다. Outlook for Mac에서 Windows용 Outlook으로 메일함을 마이그레이션하려면 OLM 파일을 Outlook PST 형식. Aspose.Email for .NET을 사용하면 Microsoft Outlook이 설치되지 않아도 코드를 통해 수행할 수 있습니다.
변환 작동 방식
OLM 파일을 PST로 변환하려면 다음 단계를 따르세요:
- 다음의 인스턴스를 생성합니다. OlmStorage 소스 OLM 파일을 여는 클래스.
- 다음 옵션을 사용하여 새 PST 파일을 생성합니다: PersonalStorage.Create 메서드.
- 구현
GetContainerClass메시지 클래스를 해당 폴더(컨테이너) 클래스로 매핑하는 메서드, 따라서 각 폴더가 PST에 올바른 유형으로 생성됩니다. - 구현
AddToPst메서드는 OLM 파일에서 각 폴더와 메시지를 재귀적으로 읽습니다 - 사용 EnumerateMapiMessages - 그리고 동일한 순서대로 PST에 추가합니다,AddSubFolder및AddMessage의 메서드 FolderInfo.
코드 샘플
다음 코드는 OLM 파일을 PST로 변환하는 방법을 보여줍니다.
Main 메서드:
// create an instance of OlmStorage class to open the source OLM
using (var olm = new OlmStorage("my.olm"))
// create a new PST file
using (var pst = PersonalStorage.Create("my.pst", FileFormatVersion.Unicode))
{
// recursively read each folder and its messages
// and add 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);
}
}
반대 방향( PST에서 OLM) 변환은 지원되지 않으며, OLM 파일은 Outlook for Mac에서 계정을 추가하고 메일 서버와 동기화할 때만 생성됩니다.