Outlook VBA宏保存在本地文件夹中的电子邮件副本
-
21-12-2019 - |
题
每当发送电子邮件时,我都希望将该电子邮件的副本保存在本地文件夹中,以及所有附件。
我不认为这是可以在Outlook中的自定义规则中实现这一点,但也许它可以使用VBA脚本完成?
我使用Outlook和MS交换。
解决方案
确保它可以使用Application_ItemSend
事件过程来调用自定义过程,该过程将向本地文件夹保存到本地文件夹。
此代码进入“thepoutlooksession”模块。
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
.
您需要确保指定的路径是唯一的/等。,上面的例子是相当粗暴的。您还需要剥离任何无法放入文件名(斜杠,管道等)的非法字符。
作为替代方案,我会建议定期存档文件夹。您可以配置Outlook以将已发送邮件的副本保存到“已发送”文件夹,然后您应该能够归档该文件夹;单独保存每个项目似乎不如最佳。
不隶属于 StackOverflow