|
下面的代码的目的是把新到达邮件中的附件另存到指定文件夹,程序在执行时出现如下现象:
1、新收到一封邮件时,将邮箱内未读邮件的附件另存,但是最后到达的那封邮件所带附件不予处理。
2、如果逐条语句执行,运行正常,可以把所有未读邮件中的附件另存。
3、如果在代码中加入msgbox语句,可以把所有未读邮件中的附件另存。
Private Sub Application_NewMail()
'新邮件到达时,将所有未读邮件的附件另存到指定文件夹
' On Error Resume Next
Dim MailAttachments As Outlook.Attachments
'MsgBox olFolderInbox
Set myfolder = Application.GetNamespace("MAPI").GetDefaultFolder(6)
For x = myfolder.Items.Count To 1 Step -1
If (myfolder.Items.Item(x).UnRead = True) Then
Set MailAttachments = myfolder.Items.Item(x).Attachments
'如果邮件附件数量大于0,逐个另存
If MailAttachments.Count > 0 Then
For y = MailAttachments.Count To 1 Step -1
MailAttachments.Item(y).SaveAsFile "C:\邮件附件\" + IIf(IsNull(MailAttachments.Item(y).DisplayName), x, MailAttachments.Item(y).DisplayName)
Next
End If
End If
Next
End If
End Sub |
|