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.1

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.1
File Size Uploaded Provenance
fastsmtp-0.8.1.tar.gz 363.7 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 547.2 kB

Release files / fastsmtp-0.8.1.tar.gz

Download URL fastsmtp-0.8.1.tar.gz
Size 363.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a4697d317730441577826e9b22d4c27aa3d25ad998f313aa03d17d7b441eb644
BLAKE2b-256 checksum
How to use checksums
b9495c8aefcb0ae190451b858e497135c8e69a7a1a2f089c963cc057f7ddc845
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.1-py3-none-any.whl

Download URL fastsmtp-0.8.1-py3-none-any.whl
Size 183.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e4b4a0f9b298ec22ec498cee516d2469e6bf227325e9ab99c4ebe68084f8319
BLAKE2b-256 checksum
How to use checksums
5ebe537cb17efe5666bb119f048b1ecc8da188ccf16448c388d752e0ec0f1f86
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.1

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