2008-10-21 13 views
5

Mi empresa requiere que use Outlook para mi correo electrónico. Outlook no hace prácticamente nada de la manera en que quiero hacerlo y me frustra mucho. (No estoy tratando de iniciar una guerra de llama aquí, debe hacer exactamente lo que miles de CEO quieren que haga, pero no soy un CEO.)Guardar/Organizar/Buscar Outlook Correo electrónico fuera de Outlook

Me gustaría poder extraer automáticamente los miles de correos electrónicos y archivos adjuntos actualmente en mi cuenta de Outlook y guardarlos en mi propio formato de almacenamiento alternativo donde puedo buscarlos fácilmente y organizarlos de la manera que quiero. (No estoy solicitando sugerencias para el nuevo formato.)

Tal vez algún buen programa de código abierto ya puede hacer esto ... eso sería genial. Por favor hagamelo saber.

De lo contrario, ¿cómo puedo obtener el contenido del mensaje y los archivos adjuntos sin tener que pasar por la gran colección de forma manual? Incluso si solo pudiera obtener el contenido del mensaje y los nombres de los archivos adjuntos, eso sería suficiente. ¿Hay documentación del formato de almacenamiento de correo de Outlook? ¿Hay alguna manera de consultar a Outlook por los datos?

Tal vez hay un enfoque alternativo que no he considerado?

Mi idioma preferido para hacer esto es C#, pero puedo usar otros si es necesario.

Respuesta

6

Outlook Redemption es lo mejor que puedo usar actualmente que he encontrado. Le permitirá entrar en los mensajes y extraer los archivos adjuntos y los cuerpos del mensaje. Lo estoy usando ahora para hacer exactamente eso.

Aquí hay un código que uso en una clase. Incluí el constructor y la función de procesamiento que uso para guardar los archivos adjuntos. Corté el código que es específico para mis necesidades pero puede hacerse una idea de qué usar aquí.

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

      } 

     } 

edición: Así es como yo lo llamo y lo que se pasa

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