我们已经Outlook 2013
在我们的电脑上安装了Windows 7
。
在我的收件箱中,我每天都会收到一封电子邮件,其主题包含文本“今天的 Excel 销售额”,并包含一个 Excel 附件。
我可以创建一个每天运行的规则,接收该电子邮件并将附加的 Excel 文件保存到远程计算机的文件夹中吗?就我而言,它将被复制到\\RemoteServer\c$\Temp
,但如果有必要,我也可以映射它。
答案1
是的,但不要使用 Outlook 规则。有很多使用 VBA 宏执行此操作的示例。在“ThisOutlookSession”对象中,您可以创建事件触发器来处理收到的邮件,就像 Outlook 规则一样。
我上次在 StackOverflow 上回答这个问题是在这里: https://stackoverflow.com/questions/51637693/outlook-2016-select-script-window-in-rules-wizard-is-blank/51638058#51638058
答案如下:将此代码放入“ThisOutlookSession”对象中。它仅从那里开始起作用。
Option Explicit
Private WithEvents inboxItems As Outlook.Items
' Set up the listener on the Inbox
Private Sub Application_Startup()
Dim outlookApp As Outlook.Application
Dim objectNS As Outlook.NameSpace
Set outlookApp = Outlook.Application
Set objectNS = outlookApp.GetNamespace("MAPI")
Set inboxItems = objectNS.GetDefaultFolder(olFolderInbox).Items
End Sub
' Send new mail to the attachment processor
Private Sub inboxItems_ItemAdd(ByVal Item As Object)
If TypeName(Item) = "MailItem" Then
Dim EMail As Outlook.MailItem
Set EMail = Item
Debug.Print "Incoming Data."
SaveAttachmentsToDisk EMail
Set EMail = Nothing
End If
End Sub
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "\\RemoteServer\c$\Temp\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.FileName
Next
End Sub