Perspectives macro VBA pour l'enregistrement des e-mails de copies dans un dossier local

StackOverflow https://stackoverflow.com//questions/25039209

  •  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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top