OLM को PST में परिवर्तित करना
Contents
[
Hide
]
OLM एक डेटाबेस फ़ाइल फ़ॉर्मेट है जिसका उपयोग Microsoft Outlook for Mac करता है। OLM फ़ाइलें ईमेल संदेश, कैलेंडर डेटा, संपर्क और एप्लिकेशन सेटिंग्स संग्रहीत करती हैं, और यह Windows के Outlook द्वारा समर्थित नहीं है। Outlook for Mac से Outlook for Windows में मेलबॉक्स माइग्रेट करने के लिए, आपको 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 द्वारा बनाई जाती है जब एक खाता जोड़कर मेल सर्वर के साथ समकालिक किया जाता है।