Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.
Sub MoveAgedMail() 'adjust mailboxNameString to match your name - it will be the way it displays in outlook mailboxNameString = "firstname.lastname@example.org" 'Check to make sure variable stored string correctly. Opportunity to kill script before it starts. MsgBox mailboxNameString 'Define outlook objects: Dim objOutlook As Outlook.Application Dim objNameSpace As Outlook.NameSpace Dim objSourceFolder As Outlook.MAPIFolder Dim obDestFolder As Outlook.MAPIFolder Dim objVariant As Variant 'Define Counters 'Used for loop to comb through Inbox folder Dim intCount As Integer 'Different ways to do with logic I did it quick and messy without it will make a copy in original folder and then also another folder that you set for all older mail if you setup similarly. Dim moveOnce As Integer ' Set variable values Set objOutlook = Application Set objNameSpace = objOutlook.GetNamespace("MAPI") Set objSourceFolder = objNameSpace.GetDefaultFolder(olFolderInbox) 'Start loop to loop through each item in the inbox For intCount = objSourceFolder.Items.Count To 1 Step -1 'This defines the variable as the mail item you are currently on in the loop which you can then manipulate, move or apply logic to. Set objVariant = objSourceFolder.Items.Item(intCount) DoEvents 'Set move counter to 0 so it will reset upon every loop, it will add 1 if its processed by the logic and at the end if it had been passed by the custom folder rules it will move to the catch Older than a Day folder. 'NOTE: Older than a day folder is completely optional you can leave out and items that dont match any othe folder / sender criteria will just remain in inbox. Completely up to you. moveOnce = 0 'Used for testing - Used to make sure that the variable was resetting. 'MsgBox "Move Once = " & moveOnce 'If object is a mail item Then... If objVariant.Class = olMail Then 'Perform logic to determine difference between NOW and the date of the item. intDateDiff = DateDiff("d", objVariant.SentOn, Now) 'If Date is older than 0 days (or today) then apply the following logic If intDateDiff > 0 Then 'Define Sender of item strSender = objVariant.SenderName 'IF Certain Sender then send to a folder 'NOTE: Please check script description for a logical example to follow along with 'Move items older than a day to standalone folder to keep e-mails organized 'Example 1 If strSender = "Voicemail Sender" Then Set obDestFolder = objNameSpace.Folders(mailboxNameString).Folders("Inbox").Folders("Voicemail") objVariant.Move obDestFolder 'Add move counter so at the end item wont be moved to two locations moveOnce = 1 End If End If End If Next Exit Sub End Sub