VBA Outlook规则调用子程序以保存到磁盘



我完全失去了VBA的能力,任何能提供帮助的人,我都非常感谢。对于outlook桌面,我想要一个自动将项目移动到文件夹、标记为已读并调用脚本的规则。(我设法做到了)

如何在outlook 2016中启用脚本:https://www.slipstick.com/outlook/rules/outlooks-rules-and-alerts-run-a-script/对于规则向导要查看的子例程,参数的类型必须为MailItem。

我想运行的脚本是将规则标识的消息保存为txt文件到磁盘,为此我使用:

在模块";ThisOutlookSession";以下代码(在Outlook VBA宏中找到,用于将电子邮件副本保存在本地文件夹中):

Public Sub SaveToDiskScript(Item As Outlook.MailItem)
Const olMsg As Long = 0 '0=Text format (.txt) -> https://learn.microsoft.com/en-us/office/vba/api/outlook.olsaveastype
Dim m As MailItem
Dim savePath As String

Set m = Item
savePath = "C:Usersim.a.pretty.userDesktopStorageFolder"
savePath = savePath & m.Subject & Format(Now(), "yyyy-mm-dd-hhNNss")
savePath = savePath & ".txt"

m.SaveAs savePath, olMsg

End Sub

谢谢

传递给MailItem类的SaveAs方法的文件路径是基于可能包含禁止符号的Subject行构建的:

savePath = "C:Usersim.a.pretty.userDesktopStorageFolder"
savePath = savePath & m.Subject & Format(Now(), "yyyy-mm-dd-hhNNss")
savePath = savePath & ".txt"

我建议在之前检查它是否包含任何禁止的符号,请参阅Windows和Linux目录名中禁止使用哪些字符?了解更多信息。

此外,您可以尝试在文件路径中指定不带点的其他文件夹。

最新更新