Outlook macro de VBA para guardar los correos electrónicos de copias en una carpeta local

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

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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top