在Outlook之外保存/组织/搜索Outlook电子邮件

时间:2008-10-21 21:00:34

标签: outlook email

我公司要求我使用Outlook收发电子邮件。 Outlook几乎没有像我想要的那样做,它让我非常沮丧。 (我不是想在这里开始一场火焰战争,它必须完全按照成千上万的首席执行官的要求去做,但我不是首席执行官。)

我希望能够自动提取当前在我的Outlook帐户中的数千封电子邮件和附件,并将其保存为我自己的替代存储格式,我可以轻松搜索它们并按照我想要的方式组织它们。 (我不是要求新格式的建议。)

也许一些不错的开源程序已经可以做到这一点......那会很棒。请告诉我。

否则,如何在不经过大量收集的情况下获取邮件内容和附件?即使我只能获取邮件内容和附件的名称,这也就足够了。是否有Outlook邮件存储格式的文档?有没有办法向Outlook查询数据?

也许有一种我没有考虑的替代方法?

我这样做的首选语言是C#,但如果需要,我可以使用其他语言。

2 个答案:

答案 0 :(得分:6)

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");

答案 1 :(得分:1)

如果您想提取电子邮件,请查看 Outlook电子邮件提取器 在codeproject http://69.10.233.10/KB/dotnet/OutlookEmailExtractor.aspx

抢 www.filefriendly.com