Skip to main content

FastSMTP

A TLS-capable, async SMTP server that receives email, verifies DKIM and SPF, and forwards the contents to configurable webhooks. Built for Python 3.12+ and for integration with n8n and other webhook-based workflow platforms.

This is the server package. The remote CLI client is a separate distribution, fastsmtp-cli, which talks to a running server over HTTP and does not depend on this one.

Install

pip install fastsmtp

On Alpine and other musl-based distributions, note that google-re2 publishes manylinux wheels but no musllinux wheels, so pip has to build it: install a compiler and the RE2 library first, or use the container image instead.

Container images are published to ghcr.io/jsenecal/fastsmtp.

Run

export FASTSMTP_DATABASE_URL=postgresql+asyncpg://user:pass@localhost/fastsmtp
export FASTSMTP_ROOT_API_KEY=$(python -c "import secrets; print(secrets.token_urlsafe(32))")

fastsmtp db upgrade head   # apply migrations first, every time
fastsmtp serve

Configuration is read from FASTSMTP_* environment variables and from a .env file in the working directory. Migrations are never applied automatically: run fastsmtp db upgrade head before starting a newer version, or the server refuses to start against a database behind it.

Documentation

Full documentation, including the configuration reference, the HTTP API and the rules engine, is at https://jsenecal.github.io/fastsmtp/.

Source and issue tracker: https://github.com/jsenecal/fastsmtp.

License

AGPL-3.0-or-later - this program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See LICENSE.

Metadata

Release files for fastsmtp 0.8.0

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

Source distribution (sdist)

Source distribution for fastsmtp 0.8.0
File Size Uploaded Provenance
fastsmtp-0.8.0.tar.gz 359.6 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 542.0 kB

Release files / fastsmtp-0.8.0.tar.gz

Download URL fastsmtp-0.8.0.tar.gz
Size 359.6 kB
Tags Source
SHA-256 checksum
How to use checksums
2e663da751a0b4689fd5ba1b71adffa3087a54081339d25ce20874f38db112a9
BLAKE2b-256 checksum
How to use checksums
acde3f00aae70dc52a7281aab4a5d8bcd32746ea92825ba4322a0d9b7a874e7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / fastsmtp-0.8.0-py3-none-any.whl

Download URL fastsmtp-0.8.0-py3-none-any.whl
Size 182.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c87b7a531203bf9278c75d045ac1b63428a44c5eacefed3c6135d3e38b5cc973
BLAKE2b-256 checksum
How to use checksums
79c70dc238a3f4ad96ac1628ee69f8d400ae4030612c7e3a7ec332a62619e30a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for fastsmtp 0.8.0

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.

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