Public Sub MoveMessagesSenderFile() Dim objOutlook As Outlook.Application Dim objNamespace As Outlook.NameSpace Dim objDestFolder As Outlook.MAPIFolder Dim objSourceFolder As Outlook.Folder Dim obj As Object Dim lngMovedItems As Long Dim intCount As Integer Dim strAddress As String Dim totalCount As Integer Set objOutlook = Application Set objNamespace = objOutlook.GetNamespace("MAPI") Set objSourceFolder = objOutlook.ActiveExplorer.CurrentFolder Set objDestFolder = objNamespace.GetDefaultFolder(olFolderInbox).Parent.Folders("Movetosent") ' array from list Dim fn As String, ff As Integer, txt As String fn = "D:\Documents\addresses-to-move.txt" '< --- .txt file path txt = Space(FileLen(fn)) ff = FreeFile Open fn For Binary As #ff Get #ff, , txt Close #ff ' remove ending line break, if exists If Len(txt) <> 0 Then If Right$(txt, 2) = vbCrLf Or Right$(txt, 2) = vbNewLine Then txt = Left$(txt, Len(txt) - 2) End If End If Dim arrAddress() As String 'Use Split function to return a zero based one dimensional array. arrAddress = Split(txt, vbCrLf) ' end arrray totalCount = objSourceFolder.Items.count For intCount = totalCount To 1 Step -1 Set obj = objSourceFolder.Items.Item(intCount) ' only move mail If obj.Class = olMail Then ' clear the string for the next message strAddress = "" ' start changed code Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E" Dim Recipients As Recipients Dim recip As Outlook.Recipient Dim pa As Outlook.propertyAccessor Set Recipients = obj.Recipients For i = Recipients.count To 1 Step -1 Set recip = Recipients.Item(i) Set pa = recip.propertyAccessor strAddress = LCase(pa.GetProperty(PR_SMTP_ADDRESS)) ' end changed code ' Go through the array and look for a match, then do something For i = LBound(arrAddress) To UBound(arrAddress) If InStr(LCase(strAddress), arrAddress(i)) > 0 Then On Error Resume Next obj.Move objDestFolder 'count the # of items moved lngMovedItems = lngMovedItems + 1 GoTo NextMsg End If Next i NextMsg: End If Next ' Display the number of items that were moved. MsgBox "Moved " & lngMovedItems & " messages(s)." Set obj = Nothing Set objOutlook = Nothing Set objNamespace = Nothing Set objSourceFolder = Nothing End Sub