1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-01 03:02:43 +01:00
phorge-phorge/src/applications/maniphest
epriestley bfea830d09 Add email preferences to receive fewer less-important notifications
Summary:
A few similar requests have come in across several tools and use cases that I
think this does a reasonable job of resolving.

We currently send one email for each update an object receives, but these aren't
always appreciated:

  - Asana does post-commit review via Differential, so the "committed" mails are
useless.
  - Quora wants to make project category edits to bugs without spamming people
attached to them.
  - Some users in general are very sensitive to email volumes, and this gives us
a good way to reduce the volumes without incurring the complexity of
delayed-send-batching.

The technical mechanism is basically:

  - Mail may optionally have "mail tags", which indicate content in the mail
(e.g., "maniphest-priority, maniphest-cc, maniphest-comment" for a mail which
contains a priority change, a CC change, and a comment).
  - If a mail has tags, remove any recipients who have opted out of all the
tags.
  - Some tags can't be opted out of via the UI, so this ensures that important
email is still delivered (e.g., cc + assign + comment is always delivered
because you can't opt out of "assign" or "comment").

Test Plan:
  - Disabled all mail tags in the web UI.
  - Used test console to send myself mail with an opt-outable tag, it was
immediately dropped.
  - Used test console to send myself mail with an opt-outable tag and a custom
tag, it was delivered.
  - Made Differential updates affecting CCs with and without comments, got
appropriate delivery.
  - Made Maniphest updates affecting project, priority and CCs with and without
comments, got appropriate delivery.
  - Verified mail headers in all cases.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran, epriestley, moskov

Maniphest Tasks: T616, T855

Differential Revision: https://secure.phabricator.com/D1635
2012-02-17 22:57:07 -08:00
..
auxiliaryfield Add support for a "bool" type to Maniphest's default field extensions 2011-12-24 08:57:13 -08:00
constants Integrate auxiliary fields into Maniphest transactions 2011-12-27 16:01:49 -08:00
controller Add a contextual "scope" dropdown for searches 2012-02-14 17:00:12 -08:00
editor/transaction Add email preferences to receive fewer less-important notifications 2012-02-17 22:57:07 -08:00
extensions Add support for a "bool" type to Maniphest's default field extensions 2011-12-24 08:57:13 -08:00
query Support limiting maniphest queries to specific ids 2011-12-02 07:30:20 -08:00
replyhandler Move event framework from Phabricator to libphutil 2011-11-16 16:34:45 -08:00
storage Integrate auxiliary fields into Maniphest transactions 2011-12-27 16:01:49 -08:00
view Break all old differential comment anchors 2012-02-07 15:19:39 -08:00