Page MenuHomePhabricator

Implement mail in Calendar, with reply handling
Closed, ResolvedPublic

Description

Calendar events should send mail, like other objects do.

You should be able to reply to Calendar mail with a command like, e.g., !join or !confirm or !rsvp to mark yourself attending.

Also, verify that invite notifications are dispatched.

Event Timeline

epriestley assigned this task to lpriestley.
epriestley raised the priority of this task from to Normal.
epriestley updated the task description. (Show Details)
epriestley added a project: Calendar.
epriestley added a subscriber: epriestley.

For outbound mail:

  • In the Editor, implement shouldSendMail().
  • This will require you to implement some other methods, like buildMailTemplate() and buildMailBody(). You can look at some other Editor classes for examples.
  • You should get most of this for free -- all the transactions should already be able to render using shared code.
  • Change getMailTo() to include all "invited" or "accepted" invitees.

Setting up real email is hard, but you can use bin/mail list-outbound and bin/mail show-outbound to browse mail that would be sent if mail was set up. This is sufficient to test your implementation.

For inbound mail (this is a bit funky):

  • Implement a subclass of PhabricatorObjectMailReceiver.
  • Implement a subclass of PhabricatorApplicationTransactionReplyHandler.
  • This is a pain to test, I can walk you through it.

What's left?

  • Implement class PhabricatorCalendarEventEmailCommand
  • Implement class PhabricatorCalendarEventRSVPEmailCommand