2008-10-21 10 views
5

Meine Firma erfordert, dass ich Outlook für meine E-Mail verwende. Outlook macht so gut wie nichts, was ich will, und es frustriert mich sehr. (Ich versuche hier nicht, einen Flammenkrieg zu beginnen, es muss genau das tun, was Tausende von CEOs tun wollen, aber ich bin kein CEO.)Speichern/Organisieren/Suchen von Outlook E-Mail außerhalb von Outlook

Ich möchte die Tausenden automatisch extrahieren können von E-Mails und Anhängen, die sich derzeit in meinem Outlook-Konto befinden, und speichere sie in meinem eigenen alternativen Speicherformat, wo ich sie leicht durchsuchen und sie so organisieren kann, wie ich es möchte. (Ich bitte keine Vorschläge für das neue Format.)

Vielleicht ein paar nette Open-Source-Programm kann das schon tun ... das wäre toll. Lass es mich wissen, bitte.

Ansonsten, Wie kann ich den Nachrichteninhalt und die Anhänge erhalten, ohne die riesige Sammlung manuell durchzugehen? Auch wenn ich nur den Nachrichteninhalt und die Namen der Anhänge bekommen könnte, wäre das ausreichend. Gibt es eine Dokumentation des Outlook-Mailspeicherformats? Gibt es eine Möglichkeit, Outlook für die Daten abzufragen?

Vielleicht gibt es einen alternativen Ansatz, den ich nicht berücksichtigt habe?

Meine bevorzugte Sprache hierfür ist C#, aber ich kann bei Bedarf andere verwenden.

Antwort

6

Outlook Redemption ist die beste Sache, die ich zur Zeit benutze, die ich gefunden habe. Es ermöglicht Ihnen, in die Nachrichten zu gelangen und die Anhänge und die Nachrichtentexte zu extrahieren. Ich benutze es jetzt, um genau das zu tun.

Hier ist ein Code, den ich in einer Klasse verwende. Ich habe den Konstruktor und die Verarbeitungsfunktion eingeschlossen, die ich verwende, um die Anhänge zu speichern. Ich schneide den Code aus, der für meine Bedürfnisse spezifisch ist, aber Sie können eine Vorstellung davon bekommen, was Sie hier verwenden sollen.

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

      } 

     } 

edit: Dies ist, wie ich es nennen, und was passiert ist

MailBox pwaMail = new MailBox("Self Email User", @"\\Mailbox - Someone\Inbox", 
           @"\\EMail - Incomming\Backup", @"\\SomePath");