Quelle est la meilleure façon de traiter par programme de nouveaux messages électroniques et de stocker les pièces jointes?

J’ai plusieurs clients / fournisseurs qui me dissortingbuent des rapports par courrier électronique. Certains de ces fichiers sont énormes et doivent être supprimés du courrier électronique et enregistrés sur un partage de fichiers pour être traités, ainsi que pour contrôler la taille de la boîte aux lettres.

Quelqu’un peut-il fournir des conseils sur la méthode recommandée pour télécharger et enregistrer automatiquement les pièces jointes.

Je suis dans un environnement MS Windows (ordinateurs clients et serveurs). Les e-mails sont sur un serveur de messagerie Microsoft Exchange 2003.

Utilisation privilégiée de la technologie Microsoft pour la cohérence entre les solutions (C #), cependant, je suis ouvert à toute suggestion, que ce soit C #, VBScript, Perl, Java, Composants que je devrais acheter, etc.

Scénario chaque jour [email protected] envoie un email avec le sujet “Rapport d’activité pour AAAA-MM-JJ” à [email protected]

Chaque e-mail a une pièce jointe nommée “ActivityReport-AAAA-MM-JJ-HH-MI-SS.xls” que je dois enregistrer sur mon système de fichiers à “C: \ FilesFromBob \ ActivityReport-AAAA-MM-JJ-HH-MI- SS.xls ”

Merci d’avance pour toute aide.

Exchange 2003 fournit une API WebDav que vous pouvez utiliser pour accéder aux e-mails, aux contacts, etc. à partir du compte d’un utilisateur.

Il existe quelques réponses sur l’ access à la boîte de réception Exchange d’un utilisateur sur SO déjà. J’ai déjà utilisé cette approche pour presque exactement la situation que vous décrivez, et une fois que vous avez élaboré le modèle d’API WebDav et la structure des requêtes et des réponses, il n’est pas trop difficile d’extraire les emails et leurs pièces jointes.

Il existe d’autres moyens d’interagir avec Exchange 2003 ( décrits dans SO ici ), mais j’ai seulement essayé l’approche WebDav car elle semblait la plus fiable.

J’ai finalement écrit le code pour stocker les messages d’Outlook. Malheureusement, ce code s’exécute dans Outlook, donc Outlook doit être ouvert.

Je n’ai pas encore étudié comment planifier la course, mais maintenant c’est facile à faire

Sub SaveOutlookFileAttachments() Dim oStores As Outlook.Stores Dim oStore As Outlook.Store Dim oFolders As Outlook.Folders Dim oFolder As Outlook.Folder Dim destFolder As Ssortingng Dim oItems As Outlook.Items Dim oMsg As Outlook.MailItem Dim oAttachments As Outlook.Attachments Dim oAttachment As Outlook.Attachment Dim oExplorer As Outlook.Explorer destFolder = "\\NetworkShare\OrderDetailReport\" On Error Resume Next Set oStores = Application.Session.Stores For Each oStore In oStores If oStore.DisplayName = "Inbox" Then oFolders = oStore.GetSearchFolders For Each oFolder In oFolders oItems = oFolder.Items For Each oMsg In oItems oAttachments = oMsg.Attachments For Each oAttachment In oAttachments If InStr(1, oAttachment.FileName, "orderdetail_", vbTextCompare) Then 'MsgBox ("This File Needs to be Saved: " & oAttachment.FileName) oAttachment.SaveAsFile (destFolder & oAtch.DisplayName) End If Next Next Next End If Next End Sub