我的公司要求我使用Outlook进行电子邮件.Outlook几乎没有像我想要的那样做,它让我非常沮丧.(我不是想在这里开始一场火焰战争,它必须完全按照成千上万的首席执行官的要求去做,但我不是首席执行官.)
我希望能够自动提取当前在我的Outlook帐户中的数千封电子邮件和附件,并将其保存为我自己的替代存储格式,在那里我可以轻松搜索它们并按照我想要的方式组织它们.(我不是要求新格式的建议.)
也许一些不错的开源程序已经可以做到这一点......这将是伟大的.请告诉我.
否则,如何在不经过大量收集的情况下获取邮件内容和附件? 即使我只能获取消息内容和附件的名称,这也就足够了.是否有Outlook邮件存储格式的文档?有没有办法查询Outlook的数据?
也许有一种我没有考虑的替代方法?
我这样做的首选语言是C#,但如果需要我可以使用其他语言.
Outlook Redemption是我发现的最好用的东西.它将允许您进入消息并提取附件和消息正文.我现在正在使用它来做到这一点.
这是我在课堂上使用的一些代码.我包含了构造函数和我用来保存附件的处理函数.我删除了特定于我需要的代码,但是你可以知道在这里使用什么.
private RDOSession _MailSession = new RDOSession(); private RDOFolder _IncommingInbox; private RDOFolder _ArchiveFolder; private string _SaveAttachmentPath; public MailBox(string Logon_Profile, string IncommingMailPath, string ArchiveMailPath, string SaveAttPath) { _MailSession.Logon(Logon_Profile, null, null, true, null, null); _IncommingInbox = _MailSession.GetFolderFromPath(IncommingMailPath); _ArchiveFolder = _MailSession.GetFolderFromPath(ArchiveMailPath); _SaveAttachmentPath = SaveAttPath; } public void ProcessMail() { foreach (RDOMail msg in _IncommingInbox.Items) { foreach (RDOAttachment attachment in msg.Attachments) { attachment.SaveAsFile(_SaveAttachmentPath + attachment.FileName); } } if (msg.Body != null) { ProcessBody(msg.Body); } } }
编辑: 这是我如何调用它以及传递的内容
MailBox pwaMail = new MailBox("Self Email User", @"\\Mailbox - Someone\Inbox", @"\\EMail - Incomming\Backup", @"\\SomePath");