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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyuubin-0.1.1.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyuubin-0.1.1-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file pyuubin-0.1.1.tar.gz.

File metadata

  • Download URL: pyuubin-0.1.1.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.1 Linux/4.15.0-1028-gcp

File hashes

Hashes for pyuubin-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9efa23d3b3f3d98d630282ed0b4c4b010be833aa54940c38529ae252a9540f62
MD5 6ad746e89b993804447f201a2acb57ef
BLAKE2b-256 d1a82b3e1c5433009c68e55024b975b5ad8dbc760f320dab19672494d06af290

See more details on using hashes here.

File details

Details for the file pyuubin-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pyuubin-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.1 Linux/4.15.0-1028-gcp

File hashes

Hashes for pyuubin-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5c8df8d9aff33bfe1d0563327ebf4ceab8ac90036060cb290f9e8fb3edd749f5
MD5 479ff6e9c0f3440bd634176c96368742
BLAKE2b-256 d12ae20fb741552d49fd27e17ae42149d9b8698c409e3f744770b201685298a7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page