HomePhabricator

Expand aggregate email recipients prior to multiplexing

Description

Expand aggregate email recipients prior to multiplexing

Summary:
Ref T4361. Before we figure out which To/CC are addressable, try to expand To/CC. Specifically, the supported expansion right now is project PHIDs expanding to all their members.

Because of the way multiplexing works, we have to do this in two places: explicitly in multiplexMail(), and when sending mail that wasn't multiplexed. This is messy; eventually we can get rid of it (after ApplicationTransactions are everywhere).

This has some rough edges, but should basically give us what we need to make stuff like projects mailable. Particularly, it deals with most issues in D7436:

  • I got around the resolution/multiplexing issue by resolving aggregate mailables separately from mailable actors.
  • We get to keep the Project PHID as a To/CC/Reviewer/Whatever until the last second.
  • Users won't get two emails for being a CC and also a member of a CC'd project.
  • We can degrade to the list stuff this way if we want, by having the project aggregate yield a single list PHID.

Test Plan: Added a comment to a revision with a project reviewer, got mail to all the project's members.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T4361

Differential Revision: https://secure.phabricator.com/D8117

Event Timeline