C#将邮件移至PST
发布时间:2020-12-16 01:58:12 所属栏目:百科 来源:网络整理
导读:我想使用C#访问我的Outlook发送文件夹,并将邮件移动到我的PST中名为Archive的文件夹中.这是我正在使用的代码,但是我遇到了多个编译错误.这里有更多编码经验的人知道如何实现这一目标吗? static void MoveMe(){try{ _app = new Microsoft.Office.Interop.Out
我想使用C#访问我的Outlook发送文件夹,并将邮件移动到我的PST中名为Archive的文件夹中.这是我正在使用的代码,但是我遇到了多个编译错误.这里有更多编码经验的人知道如何实现这一目标吗?
static void MoveMe() { try { _app = new Microsoft.Office.Interop.Outlook.Application(); _ns = _app.GetNamespace("MAPI"); _ns.Logon(null,null,false,false); Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderOutbox); Outlook.Items SentMailItems = SentMail.Items; Outlook.MailItem newEmail = null; foreach (object collectionItem in SentMailItems) { moveMail.Move(Archive); } } catch (System.Runtime.InteropServices.COMException ex) { Console.WriteLine(ex.ToString()); } finally { _ns = null; _app = null; _inboxFolder = null; } } 评论中的错误列表: >只能将赋值,调用,递增,递减和新对象表达式用作语句 解决方法
这是一个如何获取源文件夹(SentItems)并将它们移动到PST(存档)的示例.
using Outlook = Microsoft.Office.Interop.Outlook; public void MoveMyEmails() { //set up variables Outlook.Application oApp = null; Outlook.MAPIFolder oSource = null; Outlook.MAPIFolder oTarget = null; try { //instantiate variables oApp = new Outlook.Application(); oSource = oApp.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail); oTarget = oApp.Session.Folders["Archive"]; //loop through the folders items for (int i = oSource.Items.Count; i > 0; i--) { move the item oSource.Items[i].Move(oTarget); } } catch (Exception e) { //handle exception } //release objects if (oTarget != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(oTarget); GC.WaitForPendingFinalizers(); GC.Collect(); } if (oSource != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(oSource); GC.WaitForPendingFinalizers(); GC.Collect(); } if (oApp != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(oApp); GC.WaitForPendingFinalizers(); GC.Collect(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |