A simple, self-hosted bulk mailing application with a web-based UI.
Project description
bit-by-mail
A simple, self-hosted bulk mailing application with a modern web UI.
Features
- Web-Based UI: Manage campaigns, recipients, and email templates from your browser.
- Live Preview: Instantly see how your emails will look with placeholder substitution for each recipient.
- Preflight Checks: Validate your configuration, recipient data, and attachments before sending to catch errors early.
- Live Logging: Monitor the mailing process in real-time directly in the UI.
- Self-Hosted: Your data, your server. Keep your mailing lists and configurations private.
Installation & Usage
-
Install the package from PyPI:
pip install bit-by-mail
-
Run the application:
bit-by-mail
-
Open your browser: Navigate to
http://localhost:8888to access the web UI and configure your first campaign.
Application Screenshots
Dashboard
Editor
Email Editor
Email Preview
Settings
For Developers
Development Setup
If you want to contribute to the project, you'll need to set up the development environment.
Prerequisites:
- Python 3.9+
- Node.js 20+ and npm
-
Clone the repository and install dependencies: This command sets up the Python virtual environment and installs both backend and frontend dependencies.
git clone https://github.com/IOIT-ACM/bit-by-mail.git cd bit-by-mail make install
-
Run the development servers: For local development with live reloading, run the frontend and backend servers in separate terminals.
-
Backend Server:
make dev-backendThe backend will be available at
http://localhost:8888. -
Frontend Server:
make dev-frontendThis will open the application in your browser at
http://localhost:3000, which proxies requests to the backend.
-
Building for Production
To build the frontend, create a Python package, and run it like a final user would:
make run-prod
This command is useful for testing the final packaged application locally before publishing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bit_by_mail-1.0.1.tar.gz.
File metadata
- Download URL: bit_by_mail-1.0.1.tar.gz
- Upload date:
- Size: 5.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aff935492ea20f85988913fe414c8dc1fb528de5b51f4eaefb83e6104071df4f
|
|
| MD5 |
34610fbef3257d42f3d5f65728f98ac3
|
|
| BLAKE2b-256 |
112819ec61ece0e2b808d184c8d61e32dca0bc2ce1e22abc484bcdf2bf707e41
|
Provenance
The following attestation bundles were made for bit_by_mail-1.0.1.tar.gz:
Publisher:
publish.yml on IOIT-ACM/bit-by-mail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bit_by_mail-1.0.1.tar.gz -
Subject digest:
aff935492ea20f85988913fe414c8dc1fb528de5b51f4eaefb83e6104071df4f - Sigstore transparency entry: 641725115
- Sigstore integration time:
-
Permalink:
IOIT-ACM/bit-by-mail@b0857bef76df1ac8961c3dab435f3bc269b5e1cc -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/IOIT-ACM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b0857bef76df1ac8961c3dab435f3bc269b5e1cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file bit_by_mail-1.0.1-py3-none-any.whl.
File metadata
- Download URL: bit_by_mail-1.0.1-py3-none-any.whl
- Upload date:
- Size: 5.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02bc5ed6706e209cd2fc1b52b73396812bc53ca0eef55bdc41d329e606ff202a
|
|
| MD5 |
fb42c4454f18e06c1d4d74b4c7a8064c
|
|
| BLAKE2b-256 |
37552ee2d5a5dea7d5bcb883fb67a240b3a62f4090e67a8cc7da47a08b2d7024
|
Provenance
The following attestation bundles were made for bit_by_mail-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on IOIT-ACM/bit-by-mail
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bit_by_mail-1.0.1-py3-none-any.whl -
Subject digest:
02bc5ed6706e209cd2fc1b52b73396812bc53ca0eef55bdc41d329e606ff202a - Sigstore transparency entry: 641725121
- Sigstore integration time:
-
Permalink:
IOIT-ACM/bit-by-mail@b0857bef76df1ac8961c3dab435f3bc269b5e1cc -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/IOIT-ACM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b0857bef76df1ac8961c3dab435f3bc269b5e1cc -
Trigger Event:
push
-
Statement type: