I'm using Apple Mail with IMAP account. I have several filtering rules defined. The problem is that Mail doesn't apply them automatically to incoming email. Even spam isn't filtered automatically.

For all incoming email, every time, I have to select e-mails and select "Apply Rules", and then rules work fine (that one time on selected e-mails only).

It works like this on two separate installs of Mail with different accounts (both IMAP though).

How can I get Mail to apply all rules automatically every time to all e-mails?

I wonder does it ignore rules because of misconfiguation, bug or does Apple seriously expect people to use "Apply Rules" menu item regularly?


This is a bug.

In their infinite wisdom, Mail.app developers decided only to apply rules to 'unseen' messages. If the IMAP 'seen' flag is set, rules will not be applied.

I started a forum thread on the apple forums on this topic.

  • The thread seems to be deleted. But on my MacBook with Mavericks the bug is still valid. Any news on this one? – velop Feb 7 '15 at 11:10
  • 1
    not fixed in both Yosemite & El Capitan. Ugh… – Sarge Borsch Nov 1 '15 at 8:08
  • 5
    Neither in High Sierra! – Iulian Onofrei Sep 28 '17 at 9:51
  • See answer by velop below for a fix – SteffX Apr 7 '18 at 7:47

I found following post: http://www.cnet.com/how-to/how-to-delete-and-manage-old-messages-in-os-x-mail/

So you have to do the following:

  1. Add your filter that you want to apply.
  2. Add the rule condition: Every message.
  3. Set the drop down to "all"

You need to set "all" because if you set "any". What happens is that it evaluates every message, it will automatically match "every message". Then because you set "any". It won't consider the actual filter. Then it'll execute the action. So if you set the "delete" action. You will automatically delete every message in your inbox. A very dangerous mistake.

  • 6
    Make sure that when you set the "Every Message" action, that you make sure that the rule matches ALL conditions, instead of ANY conditions. otherwise you will affect every message in your inbox. – Ben L. Mar 17 '15 at 19:24
  • 1
    Answers which only contain links are not that helpful. – Ramhound Jul 13 '16 at 16:59
  • @Ramhound He included the solution too. Thanks @velop! This solved it for me. – musicin3d Nov 18 '17 at 21:01
  • 1
    I did the following to finally get it working: 1) remove "stop evaluating rules" from Rule #1 Apple News 2) Add "Every Message" to my rule 3) Add the Account name to my rule (Google account) – Vasily Hall Feb 17 at 9:07
  • This is a link only answer. Please include the relevant parts from your link. – Burgi Mar 4 at 9:48

I had the same issue, but it turned out the first rule in the list (News from Apple) had "Stop evaluating rules" as the last action.

I removed this action and it worked fine.

  • Thank you! That should be on on Apples FAQs. – Tobias F. Meier Nov 9 '18 at 16:22

Not sure if this is exactly your problem, but something similar happens to me.

I've got a Mac running Apple Mail and an iPod touch, both checking the same IMAP account. The Mac is asleep during the day. While out and about, I'll check my mail on the iPod, read the new messages, and leave them in my inbox. When I come home, I wake up the Mac, and Mail syncs with the server. The filtering rules are not applied.

The reason for this behaviour is that Mail only appears to apply rules to "new" mail. Having already seen these new messages on another device, I'm not so much downloading new messages to Mail as I am synching with the server. So, no rules applied for these messages.

Not the answer you're looking for? Browse other questions tagged or ask your own question.