如何通过C#实现获取Outlook邮件并以msg格式保存在本地

cuilongLiang 2014-11-04 01:58:58
是这样的,公司有这样的邮件整理系统。之前的做法都是通过人工从outLook把邮件拖出来(拖出来是Msg格式的,双击即能通过Outlook打开)放到指定的路径下,由之前的系统读取邮件名显示浏览,通过双击即能通过Outlook打开。 现在我想实现的是通过C#写一个小程序代替人工这一部分,直接从服务器上取邮件,然后直接保存为msg格式的!小弟新手,麻烦各位大虾指导下!谢谢!
...全文
1083 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
as199288 2018-07-24
  • 打赏
  • 举报
回复
贴一段已经使用很久的代码 希望你能看懂。 using Outlook = Microsoft.Office.Interop.Outlook; Outlook.Application myOutlookApp = new Outlook.Application(); Outlook.NameSpace myNameSpace = myOutlookApp.GetNamespace("MAPI"); //创建公共邮箱名对象 Outlook.Recipient rp = myNameSpace.CreateRecipient("公共邮件地址"); //得到公共邮箱对象 Outlook.MAPIFolder mf = myNameSpace.GetSharedDefaultFolder(rp, Outlook.OlDefaultFolders.olFolderInbox); //获取文件夹路径下的文件夹名称 //Outlook.MAPIFolder Folders = mf.Folders["Inbox"]; string filter1 = "@SQL=" + "\"" + "urn:schemas:httpmail:subject" + "\"" + "='" + 要查询的邮件 + "'"; Outlook.Items appt = null; //根据邮件的收取时间进行筛选 appt = mf.Items.Restrict(filter1) as Outlook.Items; if (appt != null && appt.Count > 0) { foreach (Outlook.MailItem itemMail in appt)//对查询到的邮件进行遍历 { Outlook._MailItem replayMail = itemMail.Forward(); itemMail.Categories = "Green Category"; replayMail.To = strGetMailTo; replayMail.Subject = item.T_MAIL_SUB; //replayMail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML; //replayMail.Display(true); //replayMail.Send(); replayMail.SaveAs(“要保存的名字”+ ".msg", Microsoft.Office.Interop.Outlook.OlInspectorClose.olPromptForSave); replayMail.Close(Microsoft.Office.Interop.Outlook.OlInspectorClose.olDiscard); }
cuilongLiang 2014-11-04
  • 打赏
  • 举报
回复
这个是不是太简单了,,都没人回复呀! 求顶呀……
cuilongLiang 2014-11-04
  • 打赏
  • 举报
回复
谢谢你的回复,这个方法试过了,是可以正常的接收并以msg格式保存,但是它取得是本地客户端的,并不是从服务器上取的。
宝_爸 2014-11-04
  • 打赏
  • 举报
回复

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧