Skip to main content

💨💨💨 Pyuubin – Mailing System 💨💨💨

Build Status

Asynchronous mailing system over HTTP API.

郵便 (Yūbin) - Postal Service

ぴゅー (Pyu-) – SFX for a sudden burst of speed, like running away from something

Installation

pip install pyuubin

Installation from source

pip install .

Running the service

You need to run the API and Worker for the system to work.

The API

Use hypercorn or uvicorn to run it

hypercorn pyuubin.api.app:app --access-log - --error-log -

The Worker

$ python -m pyuubin.worker --help
Usage: worker.py [OPTIONS]

  Run the worker.

Options:
  -n, --name TEXT                 Name of the service
  -w, --workers INTEGER           Number of workers
  -d, --debug                     Enable debug mode.
  -e, --print-environment-variables
                                  print environment variables to be put in
                                  .env file for configuration
  --help                          Show this message and exit.

Configuration

You can configure Pyuubin by using environmental variables. List of variables is available on running

$ python -m pyuubin -e
PYUUBIN_REDIS_PREFIX=pyuubin:
PYUUBIN_REDIS_MAIL_QUEUE=pyuubin::mail_queue
PYUUBIN_REDIS_URL=redis://localhost:6379
PYUUBIN_SMTP_HOST=smtp.gmail.com
PYUUBIN_SMTP_PORT=465
PYUUBIN_SMTP_USER=email@gmail.com
PYUUBIN_SMTP_PASSWORD=SecretStr('**********')
PYUUBIN_SMTP_TLS=True
PYUUBIN_MAIL_FROM=email@gmail.com
PYUUBIN_MAIL_RETURN=returns@exampple.tld
PYUUBIN_MAIL_CONNECTOR=pyuubin.connectors.smtp
PYUUBIN_AUTH_HTPASSWD_FILE=

Note that the password is a SecretStr type from pydantic, so in your .env. file please just write your password without SecretStr(), so actually what you want is: PYUUBIN_SMTP_PASSWORD=secret

Pyuubin supports .env files. You can create one quite easily by running above command and directing the output to a .env file.

$ python -m pyuubin -e > .env
$

Then edit this file, put the values required and run the app.

Authentication - Password File

Generating passwords with htpasswd:

htpasswd -Bc test_htpasswd app1

Note: Only blowfish encrypted hashes are supported

API Specification

You can find API docs here: redoc pages

TODO

  • Documentation
  • Client library
  • Handling of rejected/failed mails
  • Bounces management
  • Rate limitting for source / global

Metadata

Release files for pyuubin 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 pyuubin 0.1.1
File Size Uploaded
pyuubin-0.1.1.tar.gz 12.6 kB Details

Built distribution (wheel)

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

Total release size: 27.9 kB

Release files / pyuubin-0.1.1.tar.gz

Download URL pyuubin-0.1.1.tar.gz
Size 12.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9efa23d3b3f3d98d630282ed0b4c4b010be833aa54940c38529ae252a9540f62
BLAKE2b-256 checksum
How to use checksums
d1a82b3e1c5433009c68e55024b975b5ad8dbc760f320dab19672494d06af290
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.17 CPython/3.7.1 Linux/4.15.0-1028-gcp

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

Download URL pyuubin-0.1.1-py3-none-any.whl
Size 15.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c8df8d9aff33bfe1d0563327ebf4ceab8ac90036060cb290f9e8fb3edd749f5
BLAKE2b-256 checksum
How to use checksums
d12ae20fb741552d49fd27e17ae42149d9b8698c409e3f744770b201685298a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.17 CPython/3.7.1 Linux/4.15.0-1028-gcp

Release history Release notifications | RSS feed

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