Outlook macro de VBA para guardar los correos electrónicos de copias en una carpeta local
-
21-12-2019 - |
Pregunta
Siempre que el envío de un correo electrónico, me gustaría una copia de ese correo electrónico se guarda en la carpeta local, junto con todos los anexos.
No creo que esto es posible con una regla en Outlook, pero tal vez se podría hacer con un script de VBA?
Yo uso Outlook y microsoft Exchange.
Solución
Seguro que se puede hacer uso de la Application_ItemSend
procedimiento de evento para llamar a un procedimiento personalizado que va a salvar a su enviado correos a una carpeta local.
Este código va en "ThisOutlookSession de módulo".
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
Usted tendrá que asegurarse de que la ruta de acceso especificada es único/etc., el ejemplo anterior es bastante crudo.Usted también necesita tira a cabo de manera ilegal, caracteres que no se pueden poner en un nombre de archivo (slash, tuberías, etc.)...
Como una alternativa, me gustaría sugerir simplemente archivar carpeta(s) de forma periódica.Puede configurar Outlook para guardar una copia de los correos enviados a un "Enviado" de la carpeta y, a continuación, usted debe ser capaz de archivo de esa carpeta;ahorro de cada elemento de forma individual parece menos que óptimo.