3

我正在尝试删除收件箱中超过 90 天的所有电子邮件。我无法使用自动存档,因为它已在我的办公室被禁用。我有一些代码似乎不会删除所有超过 90 天的邮件。我认为问题可能与我的循环有关。我将 Outlook 2010 与 Exchange 2010 一起使用。

Private Sub RemoveEmail90()

Dim olSession As Outlook.Application, olNamespace As NameSpace
Dim olInbox As Outlook.MAPIFolder
Dim i As Integer
Set olSession = New Outlook.Application
Set olNamespace = olSession.GetNamespace("MAPI")
Set olInbox = olNamespace.GetDefaultFolder(olFolderInbox)
Set Delete_Items = olInbox.Items

For i = Delete_Items.Count To 1 Step -1
    If TypeName(Delete_Items.Item(i)) = "MailItem" Then
            If DateDiff("d",now, Delete_Items.Item(i).ReceivedTime) > 90 Then Delete_Items.Item(i).Delete
    End If
Next

Set olSession = Nothing
Set olNamespace = Nothing
Set olInbox = Nothing
End Sub
4

1 回答 1

1

我能够通过调整代码来修复它。现在代码运行得很好。我将第 13 行的“m”更改为“d”,现在它正在删除所有较旧的电子邮件。更新了上面的代码。

If DateDiff("d",now, Delete_Items.Item(i).ReceivedTime) > 90 Then Delete_Items.Item(i).Delete
于 2013-03-19T12:03:27.573 回答