Outlook VBA макрос для сохранения копий электронной почты в локальной папке

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

  •  21-12-2019
  •  | 
  •  

Вопрос

Всякий раз, когда отправляя электронное письмо, я хотел бы сохранить копию этого электронного письма в локальной папке вместе со всеми вложениями.

Я не думаю, что это возможно с пользовательским правилом в Outlook, но, возможно, это можно сделать с помощью сценария VBA?

Я использую Outlook и MS Exchange.

Это было полезно?

Решение

Конечно, это может быть сделано с помощью процедуры события Application_ItemSend для вызова пользовательской процедуры, которая сохранит ваши отправленные письма в локальную папку.

Этот код отправляется в модуль «TOOUTLOKSESSESSESSESSE».

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
.

Вам нужно будет убедиться, что указанный путь уникален / и т. Д., Приведенный выше пример довольно грубый.Вам также нужно раздеть любые нелегальные символы, которые не могут быть помещены в имя файла (SLASH, TOBES, ETC.) ...

как альтернатива, я бы предположил просто архивировать вашу папку периодически.Вы можете настроить Outlook для сохранения копии отправленной почты в папку «отправленную», а затем вы сможете архивировать эту папку;Сохранение каждого предмета индивидуально кажется менее чем оптимальным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top