Outlook脚本将附件移动到文件夹,但最新到最旧

时间:2015-04-06 14:08:50

标签: vba sharepoint outlook

我在Outlook中有一个脚本将附件移动到文件夹。该文件夹实际上是SharePoint Online,因此附件中的文件每天都会发布到我们的SharePoint站点。收到电子邮件后,它会在周一至周五完美运行。

 Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "C:\Users\xxx\SharePoint\Systems-Information Technolog - SYS 1\xxx"
     For Each objAtt In itm.Attachments
          objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
          Set objAtt = Nothing
     Next
End Sub

但是,在星期一收到附件并激活规则时,星期一的附件会发布到SharePoint,然后发布星期日的附件,然后发布星期六的附件,使得SharePoint上的唯一文件可用2天老。

我意识到我可以让报告在星期六和星期日停止到达但是可以修改脚本以仅检索最新的附件然后不再运行吗?这可能很重要的原因是未来的附件可以每天多次创建,所以我需要最新的,没有其他的可以发布。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可以查看MailItem类的RecievedTime属性,该属性返回一个日期,指示收到项目的日期和时间。因此,您可以查看每封收到的电子邮件的收到时间,并仅在邮件是最新邮件时保存附件。

答案 1 :(得分:0)

什么样的规则?消息到达后?请记住,如果Outlook未运行,它将不会收到新的邮件动机(周六和周日)。当Exchange缓存存储与服务器的同步时(星期一),您将在收件箱中看到新的未读邮件,但不会有新的邮件动机,也不会触发新的邮件规则。

您需要更改要运行的代码以响应收件箱文件夹中的Items.ItemAdd事件,或手动运行代码并处理收件箱中的未读邮件。