getmail6 / getmail6

based on getmail 5.14, with adaptations for python 3
https://getmail6.org/
129 stars 46 forks source link

[FeatureRequest]: HTML mailbox fetcher #208

Open agowa opened 2 months ago

agowa commented 2 months ago

Hi, would it be possible to add a generic way to fetch mails from "secure mail drops" aka. a kind of f***ed-up web-mailer for companies that for whatever reason do not send their stuff via mail but expect you to log-in to their website and check (what could have been) mails there.

As these have for whatever reason become very widespread would it be possible to add some kind of generic way for these to allow (best case) a config based integration; capturing a flow; or (worst case) interface style to allow writing a simple script/plugin for getmail6 to integrate such websites into the mailflow easily?

Would adding such an interface/feature be feasible for getmail6?

An example implementation could look like a scripts or a plugins folder within the configuration directory that allows for more flexible extensibility. Basically allowing to extend getmailcore/retrievers.py this way.

emtiu commented 2 months ago

Depending on how complicated the login mask/authentication process of the webmail interface in question is, such a task would border on emulating a browser, which is well beyond the scope of getmail6. Or do you have some "shortcut" in mind that would not require this?

agowa commented 2 months ago

Like I wrote in the example above I imagine getmail6 to at least provide an interface where more sophisticated scripts could be dropped later. These scripts would get called by getmail6 similar to how it calls the built-in retrievers. Adding this functionality should be quite simple. Basically the minimum that is required is such a plugin interface and the necessary extensibility for it.

Everything after that would in an simple implementation just be a toolbox for simplifying writing such scripts e.g. an OAUTH function or a cookie jar to keep state between the "do_login()" and "poll_message()" funcittn and maybe also a function that would keep state of what the last downloaded message was.

The ideal solution is way too complicated for getmail6 I suppose however a WYSIWYG capture the workflow would be the most desirable implementation from a users perspective..,

Edit: Or to rephrase this ticket using realistic expectations, I'd like getmail6 to provide a plugin interface to allow extending getmailcore/retrievers.py at runtime through user provided scripts.