[几年前,我创建了一些Outlook规则,以在电子邮件到达时保存附件。每个规则的条件都在查看:主题中的特定单词,“仅在此计算机上”,删除消息并从模块中运行以下脚本:
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "S:\CSVs"
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
Sleep (5000)
Set objAtt = Nothing
Next
End Sub
版本是Windows Server 2012-R2上的Outlook 365 ProPlus 1912(每月通道)。 Windows是最新的,除了以下两个可选更新(我无法进行更新):
某些受影响的电子邮件每小时发送一次,其余电子邮件每天发送。
[直到大约2个月前,一切都工作顺利,这可能与Windows和/或Office 365更新一致。从那时起,当我远程进入服务器时,每天早上我都会收到“错误规则”消息,这些消息在等待着我(我想我一直保持登录状态)。执行规则的所有部分,但不保存附件。最初,我怀疑这是VPN问题,它在8小时后超时并断开了与我的连接,但是今天早晨,当我连接到VPN&服务器时,我收到2条规则错误。如果我手动运行Outlook规则,则不会出现错误。
[我怀疑问题出在VB代码上,根据Google搜索的各种建议,我已经尝试过在VBA脚本中检查/取消选中“仅在这台计算机上”,私有和公共声明/子项的组合。
免责声明:VBA新手
原始海报-这里有什么解决办法?我正在为类似的事情而苦苦挣扎。一个基于Outlook的VBA(Office365环境)在一个月前就停止工作了,一年就可以了。
一旦我设置了规则,它可能会运行一次(第二天早晨),但是在那之后的早晨将产生“ Rules in Error”错误消息,仅此而已。一直在考虑利用Flow将附件保存到OneDrive,并自动执行剪切和粘贴功能以从那里删除附件以进行进一步处理,但我一直想知道发生了什么事以及为什么它不会像这样运行它做了。显然,Flow-option也会使事情变得更复杂(有点)。
设置Outlook规则并运行“为收件箱中的项目运行规则”每次也可以正常工作。