simple_module_mail
Outgoing mail for simple_module apps. The module owns the transport (SMTP via
aiosmtplib, or a console backend that logs each message) and its settings, and
installs a process-level sender that any module can use through
simple_module_core.mail without knowing whether mail is configured.
The default backend is console: messages are logged, nothing is delivered.
Switch to smtp and fill in the server details to deliver real email.
Install
Add the package to your host and re-sync. Discovery picks it up from the
simple_module entry point, no host code changes:
# host/pyproject.toml
dependencies = ["simple_module_mail"]
uv sync --all-packages
Usage
- Sign in as an admin and open Settings -> Modules -> Mail.
- Set
backendtosmtpand fillsmtp_host,smtp_port,smtp_username,smtp_password(masked in the UI),smtp_fromandsmtp_tls. Saving rebuilds the sender live, no restart needed. - Use Test connection to run the
mail.mailerhealth check. It logs in to the server and hangs up without sending anything.
From code, send through the core interface:
from simple_module_core.mail import MailMessage, current_mail_sender
await current_mail_sender().send(
MailMessage(to="a@example.com", subject="Hello", text="Plain body")
)
Code that may run in the outbox worker (no app) calls
await resolve_mail_sender(db) instead; the module installs a resolver that
builds the sender from the stored settings. sender.delivers_email is False
for the console backend, so screens can fall back to showing a link.
Settings stored by earlier versions as users.mailer / users.smtp_* are moved
to mail.backend / mail.smtp_* by a data migration.
Metadata
Release files for simple-module-mail 0.0.38
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| simple_module_mail-0.0.38.tar.gz | 9.3 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_module_mail-0.0.38-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.8 kB
Release files / simple_module_mail-0.0.38.tar.gz
| Download URL | simple_module_mail-0.0.38.tar.gz |
|---|---|
| Size | 9.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a84530a04df8b150f68a0f70744da04efc8cbbc69ac6e690ddd816866c8d6dcf
|
|
BLAKE2b-256 checksum How to use checksums |
a32ef2031406ea92b52a9a6013f2e7cf0fa25a329328b02579f2ce8ee96837d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / simple_module_mail-0.0.38-py3-none-any.whl
| Download URL | simple_module_mail-0.0.38-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7299fd89cddb5ae51f90c32848eeb4e006d8d08b1f006a6a3b02cb07c7b0c6bd
|
|
BLAKE2b-256 checksum How to use checksums |
094be7fd88e7ecf9ebb628daa860fe152a80467cf41f76e28ec522cbc7df824d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logSecurity for simple-module-mail 0.0.38
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for simple_module_mail-0.0.38.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logA 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.