我尝试使用Outlook 2010自动将附件保存到本地文件夹。
当我第一次创建规则并将其应用于所有收件箱时,它可以正常工作。它不能处理传入的邮件(没有保存文件)。
我尝试添加一些奇怪的代码并解决了错误,因此脚本运行了。
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "C:\temp"
Dim dateFormat As String
dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd Hmm ")
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
Next
End Sub
Outlook似乎无法识别传入邮件的附件。我尝试添加" MsgBox MyMail.Attachments.Count"它返回0。
答案 0 :(得分:0)
将您的Outlook规则替换为Items.ItemAdd Event (Outlook),请参阅示例
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olNs As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Set olNs = Application.GetNamespace("MAPI")
Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
Set Items = Inbox.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf Item Is Outlook.MailItem Then
saveAttachtoDisk Item ' call sub
End If
End Sub
Application.Startup Event (Outlook) 和 Items.ItemAdd Event (Outlook)
Items.ItemAdd Event (Outlook) 在将一个或多个项目添加到指定集合时发生。当大量项目一次添加到文件夹时,此事件不会运行。 Microsoft Visual Basic Scripting Edition(VBScript)中不提供此事件。
Application.Startup Event (Outlook) 在Microsoft Outlook启动时发生,但在加载所有加载项程序之后。 子> 的
答案 1 :(得分:0)
我终于找到了原因。如果我想自动保存附件,似乎不能使用IMAP。我切换到POP3,一切正常。