Skip to main content

Project Logo

The Lupaxa SRE Toolbox
Part of The Lupaxa Project


lupaxa-smtp-tester

Send a test email through an SMTP server to verify delivery.

Features

  • Open one SMTP session and send a short plain-text test message
  • Add Date and Message-ID headers automatically
  • Require STARTTLS before AUTH or DATA (fail if it is not advertised)
  • --tls for implicit TLS (SMTP_SSL, typically port 465)
  • --no-starttls to send without the upgrade (plaintext AUTH if used)
  • Optional AUTH: username and password together, or omit both
  • Credentials from flags or SMTP_USERNAME / SMTP_PASSWORD
  • --timeout to bound the socket
  • --verbose logs steps without protocol payloads or the password
  • Library API (send_test_message, SmtpTestResult with smtp_code)
  • Fully typed, linted, formatted, and tested
  • No runtime dependencies beyond the standard library

Installation

From PyPI

pip install lupaxa-smtp-tester

From source (development mode)

pip install -e ".[dev]"

Requires Python 3.13+. No runtime dependencies.

Library quick start

from lupaxa.smtp_tester import send_test_message

result = send_test_message(
    "smtp.example.com",
    587,
    "USER",
    "PASS",
    "from@example.com",
    "to@example.com",
)
print(result.ok, result.detail, result.smtp_code)

CLI quick start

smtp-tester --help
smtp-tester --from-address from@example.com --to-address to@example.com \
  --smtp-username USER --smtp-password PASS \
  --smtp-server smtp.example.com --smtp-port 587
smtp-tester -f from@example.com -t to@example.com \
  -s smtp.internal.example.com --no-starttls
smtp-tester -f from@example.com -t to@example.com -u USER \
  -s smtp.example.com --tls -P 465

You can also run the CLI as a module:

python -m lupaxa.smtp_tester --help
python -m lupaxa.smtp_tester --version

Documentation

Online documentation:

Documentation

Source repository:

GitHub

Serve docs locally

From a clone of the repository:

make mkdocs-serve

Then open the local URL printed by MkDocs in your browser.

Development

Clone the repository and install with Make:

make init                # first-time makefile-skills checkout
make python-install-dev  # editable install with [dev]
make python-check        # lint, type-check, and test
The Lupaxa Project Footer

Release files for lupaxa-smtp-tester 0.1.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 lupaxa-smtp-tester 0.1.1
File Size Uploaded
lupaxa_smtp_tester-0.1.1.tar.gz 8.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lupaxa-smtp-tester 0.1.1
File Interpreter ABI Platform
lupaxa_smtp_tester-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 19.0 kB

Release files / lupaxa_smtp_tester-0.1.1.tar.gz

Download URL lupaxa_smtp_tester-0.1.1.tar.gz
Size 8.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6e3b7f62b9ad161de7dbed9ef78c0e8f18152eab988acc5e25ee13c4afa60b2f
BLAKE2b-256 checksum
How to use checksums
e4f0a817970dbfd9c142286d099c67fdc4ed2c6ddb362fea5389a11c8c49c2ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

Release files / lupaxa_smtp_tester-0.1.1-py3-none-any.whl

Download URL lupaxa_smtp_tester-0.1.1-py3-none-any.whl
Size 10.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2daf5407f3724ca1eb712d9683ba614f11746486a6802756bcfcfa0669db2b18
BLAKE2b-256 checksum
How to use checksums
622307b63e8624f38b6e52a4ebdd2e7dd94c9333e555aacdc46e8ee540b6a195
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

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