FEATURE: Add hooks for email poller plugins (#21384)

While we are unable to support OAUTH2 with pop3 (due to upstream dependency ruby/net-pop#16), we are adding the support for mail pollers plugin. Doing so, it would be possible to write a plugin which then uses other ways (microsoft graph sdk for example) to poll emails from a mailbox.

The idea is that a plugin would define a class which inherits from Email::Poller and defines a poll_mailbox static method which returns an array of strings. Then the plugin could call register_mail_poller(<class_name>) to have it registered. All the configuration (oauth2 tokens, email, etc) could be managed by sitesettings defined in the plugin.
This commit is contained in:
Alessio Cosenza
2023-06-26 07:16:03 +02:00
committed by GitHub
parent 52894b9d7c
commit 56718504ac
8 changed files with 86 additions and 2 deletions

View File

@@ -647,6 +647,11 @@ class Plugin::Instance
end
end
def register_email_poller(poller)
plugin = self
DiscoursePluginRegistry.register_mail_poller(poller) if plugin.enabled?
end
def register_asset(file, opts = nil)
raise <<~ERROR if file.end_with?(".hbs", ".handlebars")
[#{name}] Handlebars templates can no longer be included via `register_asset`.