Finding specific things
An attachment you were sent is on your disk. Searching for it by name returns nothing, because of where Mail puts it.
Apple Mail is sandboxed, so its data lives under:
~/Library/Containers/com.apple.mail/Data/Library/Mail Downloads
and messages themselves under ~/Library/Mail/V10/ (the version number changes between macOS releases).
Both are inside ~/Library, which Spotlight does not return results from. The file is there; search simply will not admit it.
From the Terminal:
find ~/Library -iname "*contract*" 2>/dev/null
The 2>/dev/null suppresses permission errors from folders you cannot read.
Or with Spotlight's own tool, pointed explicitly at the folder:
mdfind -onlyin ~/Library "contract"
mdfind -onlyin searches a location Spotlight's UI hides, which is a useful distinction — the index often has the file even when the interface refuses to show it.
Mail's own search box searches message contents and attachment names, and it is the right tool when you remember the sender or the subject. ⌥⌘F focuses it.
To save an attachment somewhere findable: open the message, then File → Save Attachments.
Sandboxed apps store data in containers, and containers are inside ~/Library. Messages, Notes, Photos and most Mac App Store apps behave the same way. Anything you receive rather than create tends to end up somewhere search will not go.
An index that covers ~/Library rather than excluding it does not have this problem — the attachment is a file with a name like any other.
Not safely. Mail expects its container layout. Save copies elsewhere instead.
Removing an attachment from a message may leave the downloaded copy in the container. Mail → Settings → Accounts → Download Attachments controls what gets kept.
Everywhere keeps track of every file on your Mac — including the folders Spotlight hides and drives you have unplugged. Free for a day, then $19 once.
Download for Mac