我正在尝试将所有电子邮件从我的主PST的一个文件夹复制到我创建的新PST,然后将PST复制到PST。我正在正确创建PST,文件被复制,然后它从导航栏中删除,但它仍然被Outlook用于某些原因,这不会让我打开它阅读。这就是我所拥有的:
public static Outlook.Application oApp = new Outlook.Application();
public static Outlook.NameSpace oNS = oApp.GetNamespace("MAPI");
public static Outlook.MAPIFolder RootFolder;
public static void CopyMessages()
{
string folderName = "emails";
string strFileName = @"C:\test.pst";
string strDisplayName = "PST";
Outlook.MAPIFolder inBox = oApp.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
ThisAddIn.oNS.AddStore(strFileName);
RootFolder = ThisAddIn.oNS.Folders.GetLast();
RootFolder.Name = strDisplayName;
//ThisAddIn.oNS.RemoveStore(RootFolder);
//ThisAddIn.oNS.AddStore(strFileName);
try
{
inBox.Folders[folderName].CopyTo(RootFolder);
//System.Threading.Thread.Sleep(2000);
ThisAddIn.oNS.RemoveStore(RootFolder);
//ThisAddIn.oNS.AddStore(strFileName);
}
catch
{
MessageBox.Show("There is no folder named " + folderName +
".", "Find Folder Name");
}
}
任何帮助将不胜感激。
答案 0 :(得分:0)
我不认为只使用Outlook对象模型可以做很多事情。您可以创建一个单独的应用程序,该应用程序使用扩展MAPI(C ++或Delphi)或Redemption(任何语言)创建临时配置文件,并将指定的PST文件添加到该配置文件。退出辅助进程后,文件将被释放,您的插件将能够删除它。