This is the kind of thing I use. Add it to a vbs or vba program and run it when an email arrives or alternatively add it to scheduled tasks to check every now and then...
Dim mliNew As MailItem
Dim ns As NameSpace
Dim oOutlook As Outlook.Application
Set oOutlook = New Outlook.Application
Set ns = oOutlook.GetNamespace("MAPI")
Set mfrInbox = ns.GetDefaultFolder(olFolderInbox)
With mfrInbox
If .Items.Count = 0 Then
MsgBox "There are no messages in the Inbox.", vbInformation, "Nothing Found"
Else
.Items.Sort "Received", True
'check all e-mails sent today
For Each mliNew In .Items
If mliNew.sendername = "myfriend" Then
mliNew.Attachments.Item(1).SaveAsFile sMyNewFile
Else
Exit For
End If
Next
End If
End With
Main_Exit:
Set mliNew = Nothing
Set ns = Nothing
Set oOutlook = Nothing
Exit Sub