The current implementation of ActionMailbox comes with a number of ingress options out of the box, but as far as I can tell there’s no obvious way to add support for others without making a pull request to the Rails core and including a complete implementation.
I run a Rails-based email platform with an existing Ruby gem that we’re looking to extend to include ActionMailbox support. Based on testing versus the Rails 6 beta it looks like adding options could be considerably easier either through documentation or through support for loadable modules.
Issues Faced
The ActionMailbox ingress options are baked in to the ActionMailbox library.
Proposal
Adding ingress options to ActionMailbox should be an easy process based on following guidelines and examples.
So the two obvious options are:
-
A non-invasive method would be to develop a well-documented example in the form of a minimal gem that uses dependency injection to create the appropriate ActionMailbox ingress routes and controllers. This would be a Rails engine-type package that can be easily added or removed to any Rails 6 application.
-
A more direct method would be to develop a plug-in or module system for ActionMailbox that makes it easier to define ingress handlers, not unlike how ActionMailer’s handler can be extended or replaced in your Rails config very easily with a minimum of fuss.
Both of these allow third parties to independently iterate and improve on their ActionMailbox integrations without having to wait for a new ActionMailbox release for updates, so that could benefit everyone, even existing implementations.