Сохранение / Организация / Поиск электронной почты Outlook вне Outlook - PullRequest
5 голосов
/ 22 октября 2008

Моя компания требует, чтобы я использовал Outlook для своей электронной почты. Outlook практически ничего не делает так, как я хочу, и это сильно расстраивает меня. (Я не пытаюсь начать здесь пламенную войну, она должна делать именно то, чего хотят тысячи генеральных директоров, но я не генеральный директор.)

Я хотел бы иметь возможность автоматически извлекать тысячи электронных писем и вложений, которые в настоящее время находятся в моей учетной записи Outlook, и сохранять их в моем собственном альтернативном формате хранения, где я могу легко искать их и организовывать их так, как я хочу. (Я не запрашиваю предложения по новому формату.)

Может быть, какая-нибудь хорошая программа с открытым исходным кодом уже может сделать это ... это было бы здорово. Пожалуйста, дайте мне знать.

В противном случае, как я могу получить содержимое сообщения и вложения, не проходя огромную коллекцию вручную? Даже если бы я мог получить только содержимое сообщения и названия вложений, этого было бы достаточно. Есть ли документация о формате почтового хранилища Outlook? Есть ли способ запросить данные в Outlook?

Может быть, есть альтернативный подход, который я не рассматривал?

Мой предпочтительный язык для этого - C #, но я могу использовать другие, если это необходимо.

Ответы [ 2 ]

6 голосов
/ 22 октября 2008

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 голос
/ 04 апреля 2009

Если вы хотите извлечь ваши письма, взгляните на Outlook Email Extractor в кодпроекте http://69.10.233.10/KB/dotnet/OutlookEmailExtractor.aspx

грабят www.filefriendly.com

...