Převod OLM na PST
Contents
[
Hide
]
OLM je databázový formát souboru používaný Microsoft Outlook pro Mac. OLM soubory ukládají e‑mailové zprávy, kalendářová data, kontakty a nastavení aplikace a nejsou podporovány Outlookem pro Windows. Pro migraci poštovní schránky z Outlooku pro Mac do Outlooku pro Windows musíte převést OLM soubor do formátu Outlook PST formát. Aspose.Email pro .NET vám umožní to provést v kódu, bez nutnosti mít nainstalovaný Microsoft Outlook.
Jak funguje převod
Pro převod OLM souboru do PST postupujte podle těchto kroků:
- Vytvořte instanci OlmStorage class pro otevření zdrojového souboru OLM.
- Vytvořte nový PST soubor pomocí PersonalStorage.Create metoda.
- Implementujte
GetContainerClassmetodu, která mapuje třídu zprávy na odpovídající třídu složky (kontejneru), takže každá složka je v PST vytvořena se správným typem. - Implementujte
AddToPstmetody, která rekurzivně čte každou složku a její zprávy z OLM souboru – pomocí EnumerateMapiMessages - a přidá je do PST ve stejném pořadí pomocíAddSubFolderaAddMessagemetody z FolderInfo.
Ukázkový kód
Následující kód ukazuje, jak převést OLM soubor na PST.
Metoda 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);
}
}
Metoda 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";
}
Metoda 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);
}
}
Převod v opačném směru (z PST do OLM) není podporován, protože OLM soubor je vždy vytvořen Outlookem pro Mac při přidání účtu a synchronizaci s poštovním serverem.