Metadata-Version: 2.1
Name: ModernRelay
Version: 0.0.2
Summary: An asynchronous, highly configurable SMTP relay
Home-page: https://github.com/blbuford/ModernRelay
Author: Brett Buford
Author-email: blbuford@gmail.com
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Communications :: Email
Requires-Dist: aiofiles
Requires-Dist: aiohttp
Requires-Dist: aiosmtpd
Requires-Dist: APScheduler
Requires-Dist: argon2-cffi
Requires-Dist: confuse
Requires-Dist: msgraph-async
Requires-Dist: check-manifest ; extra == "dev"
Requires-Dist: python-dotenv ; extra == "dev"
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: sphinx_RTD_theme ; extra == "doc"
Requires-Dist: asynctest ; extra == "test"
Requires-Dist: coverage ; extra == "test"
Requires-Dist: flake8 ; extra == "test"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-asyncio ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Requires-Dist: pytest-sugar ; extra == "test"
Requires-Dist: tox ; extra == "test"
Provides-Extra: dev
Provides-Extra: doc
Provides-Extra: test

Modern Relay
============

Welcome to Modern Relay's documentation! The intention for this project is to build a mail relay that works seamlessly in
the new IT landscape of cloud providers, API access, and the security measures that come with them. I've found that
federating Microsoft 365 tenants and requiring MFA for all accounts is a great leap forward in securing organizations,
but it introduces new strains on IT to integrate legacy devices/applications that an organization may not want to replace.

Modern Relay solves this problem by being a drop in replacement for the IIS-based SMTP relays that an organization
likely already has in place. There are configurable "delivery agents" that Modern Relay uses to convert mail coming in
from SMTP to different delivery schemes like an HTTP request to an API (e.g. Microsoft Graph). By leveraging APIs to
different mail providers, you can skip licensing hassles, 2FA/app password woes, custom Exchange Online connectors, and
adding another SPF address to your record.

Features
========

* Fully asynchronous
* Uses customizable delivery actions based on the origin IP address
* Queues mail in the event of delivery failure for later resending
* Access control to allow certain origin addresses/subnets or certain destination domains
* Supports anonymous and plain login schemes
* Supports STARTTLS if you provide the certs
* Supports Microsoft Graph API mail delivery

Requirements
============

You need **at least Python 3.6** to use this library

Supported Platforms
-------------------

``ModernRelay`` is tested on **CPython** and |PyPy3.7|_
for the following platforms:

* Windows 10
* Ubuntu 20.04
* Ubuntu 18.04

.. |PyPy3.7| replace:: **PyPy3.7**
.. _`PyPy3.7`: https://www.pypy.org/

Installation
============

For Linux or Windows environments where you're managing your own python installation, install with ``pip``::

    pip install modernrelay

You will need to set the appropriate environment variables for your chosen delivery agents. See individual agent
documentation for more details.

If an installer is more your speed, go download a Windows msi installer from the releases section and run it.

Building
========

You can install this package in a virtual environment like so::

    $ python3 -m venv /path/to/venv
    $ source /path/to/venv/bin/activate
    $ git clone https://github.com/blbuford/ModernRelay.git
    $ cd ModernRelay
    $ pip install -e .[dev]

License
=======

``ModernRelay`` is released under the MIT License.
