2008-10-21 9 views
5

Ma société exige que j'utilise Outlook pour mon courrier électronique. Outlook ne fait pratiquement rien comme je le veux et cela me frustre énormément. (Je n'essaie pas de déclencher une guerre de flammes ici, il doit faire exactement ce que des milliers de PDG veulent faire, mais je ne suis pas un PDG.)Enregistrement/organisation/recherche de messagerie Outlook en dehors d'Outlook

Je voudrais être en mesure d'extraire automatiquement les milliers des e-mails et des pièces jointes actuellement dans mon compte Outlook et les enregistrer dans mon propre format de stockage alternatif où je peux facilement les rechercher et les organiser comme je le veux. (Je ne demande pas de suggestions pour le nouveau format.)

Peut-être qu'un programme open source sympa peut déjà faire ça ... ce serait génial. S'il vous plaît, faites-moi savoir.

Sinon, comment puis-je obtenir le contenu du message et les pièces jointes sans passer par l'énorme collection manuellement? Même si je ne pouvais obtenir que le contenu du message et les noms des pièces jointes, cela suffirait. Existe-t-il une documentation du format de stockage de courrier Outlook? Existe-t-il un moyen d'interroger Outlook pour les données?

Peut-être qu'il y a une autre approche que je n'ai pas envisagée?

Ma langue préférée pour ce faire est C#, mais je peux en utiliser d'autres si nécessaire.

Répondre

6

Outlook Redemption est la meilleure chose à utiliser actuellement que j'ai trouvé. Cela vous permettra d'entrer dans les messages et d'extraire les pièces jointes et les corps des messages. Je l'utilise maintenant pour le faire.

Voici un code que j'utilise dans une classe. J'ai inclus le constructeur et la fonction de traitement que j'utilise pour sauvegarder les pièces jointes. Je découpe le code qui est spécifique à mes besoins mais vous pouvez avoir une idée de ce qu'il faut utiliser ici.

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

      } 

     } 

modifier: Voici comment je l'appelle et ce qui est passé

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