Outlook VBA макрос для сохранения копий электронной почты в локальной папке
-
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 для сохранения копии отправленной почты в папку «отправленную», а затем вы сможете архивировать эту папку;Сохранение каждого предмета индивидуально кажется менее чем оптимальным.