Pergunta

Sempre que enviar um email, gostaria que uma cópia desse email fosse salva na pasta local, junto com todos os anexos.

Não acho que isso seja possível com uma regra personalizada no Outlook, mas talvez isso pudesse ser feito com um script VBA?

Eu uso Outlook e MS Exchange.

Foi útil?

Solução

Claro que isso pode ser feito usando o Application_ItemSend procedimento de evento para chamar um procedimento personalizado que salvará seus e-mails enviados em uma pasta local.

Este código vai no módulo "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

Você precisará garantir que o caminho especificado seja único/etc., o exemplo acima é bastante rudimentar.Você também precisa remover quaisquer caracteres ilegais que não possam ser colocados em um nome de arquivo (barra, barra vertical, etc.)...

Como alternativa, sugiro simplesmente arquivar suas pastas periodicamente.Você pode configurar o Outlook para salvar uma cópia do e-mail enviado em uma pasta "Enviados" e, então, poderá arquivar essa pasta;salvar cada item individualmente parece abaixo do ideal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top