An asynchronous, highly configurable SMTP relay
Project description
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
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ModernRelay-0.0.2.tar.gz
.
File metadata
- Download URL: ModernRelay-0.0.2.tar.gz
- Upload date:
- Size: 37.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.25.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07636a6ce910211e1c9c30393fa4b049b56b17db587b97ebc31d741ffdb0947c |
|
MD5 | 3050ffe8076db0132a64d21dee7cb123 |
|
BLAKE2b-256 | 3cdbff0f32001ffa7e38509e17ac49d6d18b71e84e0bbfcb7b0cc3235859c367 |
File details
Details for the file ModernRelay-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: ModernRelay-0.0.2-py3-none-any.whl
- Upload date:
- Size: 33.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.25.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4494c69d21dcbb1281cc04c1f57dc0a00c8208b86aee1de2b310b726841ffc20 |
|
MD5 | 47fd9a98a790fa864f3da5a19203ad98 |
|
BLAKE2b-256 | 9d51a90e5a382b748eb54c53b55cdfa5f48fec159b29cca3eb485f75de843ead |