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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top