Perspectives macro VBA pour l'enregistrement des e-mails de copies dans un dossier local
-
21-12-2019 - |
Question
Chaque fois que l'envoi d'un email, je voudrais une copie de cet e-mail pour être enregistré dans le dossier local, avec toutes les pièces jointes.
Je ne pense pas que ce soit possible avec une règle personnalisée dans Outlook, mais peut-être il pourrait être fait avec un script VBA?
J'utilise Outlook et MS Exchange.
La solution
Assurez-vous qu'il peut être fait à l'aide de la Application_ItemSend
procédure événementielle pour appeler une procédure personnalisée qui permettra de sauvegarder vos messages envoyés vers un dossier local.
Ce code va dans "ThisOutlookSession" module.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Call SaveACopy(Item)
End Sub
Sub SaveACopy(Item As Object)
Const olMsg As Long = 3
Dim m As MailItem
Dim savePath As String
If TypeName(Item) <> "MailItem" Then Exit Sub
Set m = Item
savePath = "c:\users\your_user_name\desktop\" '## Modify as needed
savePath = savePath & m.Subject & Format(Now(), "yyyy-mm-dd-hhNNss")
savePath = savePath & ".msg"
m.SaveAs savePath, olMsg
End Sub
Vous devez vous assurer que le chemin d'accès spécifié est unique/etc., l'exemple ci-dessus est assez brut.Vous avez également besoin de sortir la bande illégal, des caractères qui ne peuvent pas être mis dans un nom de fichier (slash, des tuyaux, etc.)...
Comme une alternative, je dirais simplement l'archivage de vos dossier(s) régulièrement.Vous pouvez configurer Outlook pour enregistrer une copie des messages envoyés vers un dossier "Envoyé", et alors vous devriez être en mesure de les archiver ce dossier;l'enregistrement de chaque élément individuellement, semble de moins en moins-que-optimale.