Outlook VBA Macro per salvare le e-mail copia in una cartella locale
-
21-12-2019 - |
Domanda
Ogni volta che invia una e-mail, vorrei una copia di tale e-mail da salvare nella cartella locale, insieme a tutti gli allegati.
Non penso che sia possibile con una regola personalizzata in Outlook ma forse potrebbe essere fatto con uno script VBA?
Io uso Outlook e MS Exchange.
Soluzione
Sicuro che può essere fatto utilizzando la procedura evento Application_ItemSend
per chiamare una procedura personalizzata che salverà le tue mail inviate in una cartella locale.
Questo codice va in modulo "ThisoutLookSession".
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
.
È necessario assicurarsi che il percorso specificato sia unico / ecc., L'esempio sopra è abbastanza grezzo.Hai anche bisogno di spuntare qualsiasi personaggio illegale che non può essere inserito in un nome di file (barra, tubi, ecc.) ...
In alternativa, suggerirei semplicemente archiviando periodicamente le cartelle.È possibile configurare Outlook per salvare una copia della posta inviata in una cartella "inviata" e quindi dovresti essere in grado di archiviare quella cartella;Salvare ciascun articolo singolarmente sembra meno che ottimale.