2 Ways to Batch Mark All Outlook Emails Older Than a Specific Date as Read

After importing multiple old emails into Outlook and these emails are in “unread” status, you must want to batch mark them as read. Now, in this article, we will show 2 quick methods to you.

At times, you may need to batch mark multiple emails as read. For instance, you have an old PST file, which contains a plenty of old emails. Then, you import the emails into your own Outlook PST file. However, after importing, these emails are shown as “Unread” by default. At this time, you’ll want to batch mark these mails, older than a specific date, as read. Here we will look at this requirement to share 2 handy and efficient approaches.

Method 1: Batch Mark Found Emails as Read Manually

  1. For a start, open a mail folder.
  2. Then, click into the search box.
  3. Next, in “Search” ribbon, click “All Mail Items” button in “Scope” group.
  4. After that, input the criteria “sent: <=2018/5/21” in the search box. Change “2018/5/12” to your desired date.Search Mails Older Than Specific Date
  5. When searching completes, select all the found mail items via “Ctrl + A”.
  6. Finally, right click and choose “Mark ad Read” option.Mark as Read

Method 2: Batch Mark Emails Older Than Specific Date as Read with VBA

  1. To begin with, launch VBA editor in Outlook according to “How to Run VBA Code in Your Outlook“.
  2. Then, copy the following code into a module.
Dim dDate As Date

Sub MarkEmailsOlderThanSpecificDateRead()
    Dim objStore As Outlook.Store
    Dim objOutlookFile As Outlook.Folder
    Dim objFolder As Outlook.Folder
 
    dDate = InputBox("Enter the specific date:", , "2018/5/11")
 
    For Each objStore In Outlook.Application.Session.Stores
        Set objOutlookFile = objStore.GetRootFolder
 
        For Each objFolder In objOutlookFile.Folders
            If objFolder.DefaultItemType = olMailItem Then
               Call ProcessFolders(objFolder)
            End If
        Next
    Next
End Sub

Sub ProcessFolders(ByVal objCurFolder As Outlook.Folder)
    Dim objItem As Object
    Dim objMail As Outlook.MailItem
    Dim objSubfolder As Outlook.Folder
 
    For Each objItem In objCurFolder.Items
        If TypeOf objItem Is MailItem Then
           Set objMail = objItem
 
           If objMail.SentOn <= dDate Then
              If objMail.UnRead = True Then
                 objMail.UnRead = False
                 objMail.Save
              End If
           End If
        End If
    Next
 
    If objCurFolder.Folders.Count > 0 Then
       For Each objSubfolder In objCurFolder.Folders
           Call ProcessFolders(objSubfolder)
       Next
    End If
End Sub

VBA Code - Batch Mark Emails Older Than Specific Date as Read

  1. Afterwards, press “F5” key to run this macro right now.
  2. Later, in the small popup dialog box, enter the specific date and hit “OK”.Enter the Specific Date
  3. Eventually, all the emails older than the specific date will be marked as read.Unread Mails Are Changed to Read

Restore Compromised Outlook File

Outlook PST files may be damaged after Outlook crashes unexpectedly now and then. If you have an updated backup, you can just recover Outlook data with your backup. Otherwise, you have no choice but to seek a specialized expert or utility, such as DataNumen Outlook Repair to repair Outlook file.

Author Introduction:

Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including mdf fix and outlook repair software products. For more information visit www.datanumen.com

2 responses to “2 Ways to Batch Mark All Outlook Emails Older Than a Specific Date as Read”

Leave a Reply

Your email address will not be published. Required fields are marked *