Skip to main content

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.

Metadata

Release files for ModernRelay 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ModernRelay 0.0.3
File Size Uploaded Provenance Actions
ModernRelay-0.0.3.tar.gz 37.2 kB Without provenance Details for ModernRelay-0.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ModernRelay 0.0.3
File Interpreter ABI Platform Actions
ModernRelay-0.0.3-py3-none-any.whl Python 3 none any Details for ModernRelay-0.0.3-py3-none-any.whl

Total release size: 71.4 kB

Release files / ModernRelay-0.0.3.tar.gz

Download URL ModernRelay-0.0.3.tar.gz
Size 37.2 kB
Tags Source
SHA-256 checksum
How to use checksums
00f37477b952eec17b97afad3a1328f9c035377be1ef7c6d7d19490b85f67e48
BLAKE2b-256 checksum
How to use checksums
7fa1895a7e946358ef2bee2480a5f7a0ecd0929a9b443b0c7176bdf62f28956a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.25.1

Release files / ModernRelay-0.0.3-py3-none-any.whl

Download URL ModernRelay-0.0.3-py3-none-any.whl
Size 34.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f23eeaa082d654b00896f7ae12f6c45d4d5379a76c7233cf6262c929df1b94a6
BLAKE2b-256 checksum
How to use checksums
d7a99932c0560b870e017efbca781c459326d7e6cbb60cac41b2ca301ef839ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.25.1

Security for ModernRelay 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page