💨💨💨 Pyuubin – Mailing System 💨💨💨
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
SecretStrtype from pydantic, so in your.env.file please just write your password withoutSecretStr(), 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)
| File | Size | Uploaded | |
|---|---|---|---|
| pyuubin-0.1.1.tar.gz | 12.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|