T13053/T10448 introduced "mail stamps", which are more expressive labels for mail to support client routing. They can also be inlined into the mail body for client routing with Gmail.
Currently, stamps coexist with the older (and significantly less expressive) "mail tags" system, and you can't write rules against stamps in Phabricator itself, only against tags.
I'd like to replace Phabricator-side routing of mail with a stamps-based system and remove the current Settings → Email Preferences UI. This probably isn't very difficult technically, but building a UI to let users define rules is likely a significant amount of work, since it should ideally be a big fancy Javascript thing that lets users define rules with a lot of logic, accommodates "global" and "personal" rules in a reasonable way, and doesn't require any PhDs to configure the common 90% of things that users are most interested in configuring.
Outstanding use cases for this include:
- (T4654) Rules like "when I'm mentioned: send me an email and stop processing rules".
- (T10448) Original request: ignore all (some? This was a little vague) mail from Owners packages.
- (T11363) Ignore revisions being updated.
- Also, ignore revisions being closed.
- (PHI175) Ignore resigns.
- (PHI54) Maybe ignore revision mail where you aren't a reviewer?
Stamps also currently do not include information about the actions that the mail describes, only stateful information about the object. This is likely not difficult but is a fair amount of legwork. I also want to add some UI around stamps first so we can automatically generate a list of applicable transactions and the tags they generate, to make sure I'm not missing anything when I implement this stuff as much as anything else.