自动保存 Outlook 附件

自动保存 Outlook 附件

有没有一种基于 Windows 的方法可以自动将 Outlook 2010 中保存的电子邮件附件拉到服务器?我每天都会收到一封带有附件的电子邮件,我会手动将其保存到服务器上的文件夹中。我需要自动执行此过程。

我尝试过的方法

我尝试在 Outlook 中创建规则并为其编写脚本。但它只会将附件保存到我电脑上的本地文件夹中。并且只有在打开 Outlook 时才会保存。我希望它保存到服务器,即使服务器上未打开 Outlook 也会保存。这是我在 Outlook 中保存的脚本

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
saveFolder = "D:\newfolder" 
  For Each objAtt In itm.Attachments 
    If InStr(objAtt.DisplayName, ".xls") Then 
    objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName 
    End If 
  Set objAtt = Nothing 
  Next 
End Sub 

答案1

运行 VBA 是客户端独有的操作。这意味着您的 PC 必须处于打开状态,并且 Outlook 必须运行且启用脚本。如果您没有运行 Outlook,那么您的愿望就无法实现。也许有一个服务器端解决方案,但这是 serverfault.com 的问题

如果您想要处理特定电子邮件中的附件,我使用以下方法。它在 Outlook 2013 中对我来说非常有效:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "c:\temp"
     For Each objAtt In itm.Attachments
          objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
          Set objAtt = Nothing
     Next
End Sub

规则的最后一部分是运行脚本。

在此处输入图片描述

对于不熟悉 Outlook VBA 的用户,您需要调出开发人员功能区。

在此处输入图片描述

粘贴上面的代码,保存 VBA,然后在规则中引用它。

在此处输入图片描述

答案2

如果您的 Outlook 帐户是 POP3 或 IMAP,则您无法在客户端关闭时运行宏或规则,因为除了传入消息之外没有其他方法可以触发您的事件。

如果您在 Exchange 上运行 Outlook,则需要在服务器上为您的帐户创建一条规则,以便在将附件发送到收件箱之前保存附件。该规则将需要 UNC 地址( ,而不是服务器无法识别的\\server\folder本地映射驱动器地址( )。D:\folder

请记住,您的网络管理员可能出于安全原因禁用了服务器端规则。您应该与他们核实,确保您能够做到这一点。

附加信息:客户端和服务器端规则

相关内容