Metadata-Version: 2.4
Name: slc.mailrouter
Version: 4.0.0a1
Summary: Framework for handling email in zope
Home-page: https://github.com/syslabcom/slc.mailrouter
Author: Syslab.com GmbH
Author-email: info@syslab.com
License: GPL
Keywords: smtp2zope email mail-in zope
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: 6.0
Classifier: Framework :: Plone :: 6.1
Classifier: Framework :: Plone :: 6.2
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: setuptools
Requires-Dist: plone.api
Requires-Dist: Products.CMFPlone>=5.0
Provides-Extra: test
Requires-Dist: plone.app.testing; extra == "test"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Introduction

`slc.mailrouter` bridges the gap between zope and email. It is based on the same
idea as products such as mailboxer: a script is invoked by your mail transfer
agent (postfix, exim) and the body of the email is passed to this script on
stdin. This is then communicated to zope using an http post, where it is parsed
and handled.

`slc.mailrouter` implements a component model for the handling of emails. By
itself it allows the user to send an email to a folder and have all attachments
on the email stored in that folder. The folder can be addressed either by
its UID, or by assigning a friendly alias to the folder in the plone control
panel.

The MailToFolder router is implemented using an adapter pattern. If you want
to change the way this works, Implement an adapter that adapts IFolderish
and implements `slc.mailrouter.interfaces.IMailImportAdapter`. The `add()` method
on this adapter receives the message as an argument and is responsible for
persisting the contents of the message to the folder.

Additional mail routes can be implemented by other products by creating a
utility and registering it under the interface
`slc.mailrouter.interfaces.IMailRouter`. Such mail router utilities are called
one after the other until one of them reports that the message was successfully
delivered. In this way it mirrors the way exim's routers work.

# Compatibility

Since version 4, `slc.mailrouter` is compatible with Plone 6.0 and Python 3.10+.
The package switched to use PEP 420 namespace packages.

While version 3 claims to be compatible with Plone 5.2 and Python 3.7,
you might have success running it with newer versions of Plone and Python,
but this is not tested and not guaranteed.

# Credits

Izak Burger <isburger@gmail.com>
Manuel Reinhardt <reinhardt@syslab.com>
