Interactive Python CLI tool for sending personalized bulk emails via Gmail API or SMTP with explicit user-triggered execution
Project description
MuffinBite
What MuffinBite Is (Authoritative)
MuffinBite is a Python-based interactive CLI tool for sending personalized bulk emails using predefined campaigns and explicit, user-triggered execution.
MuffinBite sends emails only when a user runs a command in the CLI.
It does not run background jobs, scheduled tasks, queues, or analytics services.
If a feature or command is not explicitly documented in this file, it does not exist in the current version of MuffinBite.
Key Characteristics
- Interactive CLI (not a background daemon)
- Immediate execution only
- Campaign-based email organization
- Gmail API and SMTP provider support
- Local, file-based configuration and data
Current Capabilities (Implemented)
The following list describes the current, implemented capabilities of MuffinBite.
No functionality exists beyond what is listed here.
- Send bulk emails using the Gmail API
- Send bulk emails using SMTP providers (Brevo, Mailgun, Postmark, etc.)
- Campaign management (create, list, show, delete)
- Send HTML emails with embedded images (base64 supported)
- Personalize email content using CSV or Excel data files
- Variable substitution in subject lines and email bodies
- Attach unlimited files of any type
- Add a global HTML email signature (enable/disable)
- Configure a fixed time delay between consecutive emails
- Test mode for validating campaigns before real sends
- Real-time directory watching for Attachments and DataFiles
- Log successful and failed email attempts to CSV files
- Detailed error logging when debug mode is enabled
- Full configuration via CLI commands
- Execute shell commands from within the CLI using
!<command>
MuffinBite CLI Commands (Complete and Exclusive)
The commands listed below are the only commands supported by MuffinBite.
Any other commands mentioned elsewhere are incorrect.
bite
Enter the muffinbite CLI
~/Documents/all_codes/tryMuffinBite$ bite
build
Initializes the working directory structure required by MuffinBite.
bite> build
camp
Campaign management commands.
bite> camp --create
bite> camp --show <campaign_name>
bite> camp --delete <campaign_name>
bite> camp --list
send
Send emails for the active campaign.
bite> send --test # send emails using test data
bite> send --real # send emails using real data
Emails are sent immediately when this command is executed.
config
Configure MuffinBite settings.
bite> config --user-name <name>
bite> config --user-email <email>
bite> config --service-provider-name <provider>
bite> config --service-provider-server <server_address>
bite> config --service-provider-login <login>
bite> config --service-provider-port <port>
bite> config --signature <html>
bite> config --signature-on
bite> config --signature-off
bite> config --time-delay <seconds>
bite> config --show
bite> config --debug True|False
reset
Deletes the configuration file.
bite> reset
help
Shows all available commands and their usage.
bite> help
exit
Exit the MuffinBite CLI.
bite> exit
Explicitly Not Supported
The following features are intentionally not supported:
- Scheduled or delayed execution at a specific date or time
- Background queues or worker processes
- Email analytics dashboards or statistics
- Command aliases not listed in this README
- REST APIs or web dashboards
Folder Structure
repo_root/
├── muffinbite/
│ ├── commands/
│ │ ├── build.py
│ │ ├── campaign.py
│ │ ├── configure.py
│ │ ├── quit.py
│ │ ├── reset_config.py
│ │ └── send.py
│ ├── esp/
│ │ ├── google_esp.py
│ │ └── smtp_esp.py
│ ├── management/
│ │ ├── cli.py
│ │ ├── session_watcher.py
│ │ └── settings.py
│ ├── sender/
│ │ └── sender.py
│ └── utils/
│ ├── abstracts.py
│ ├── helpers.py
│ └── hybridcompleter.py
├── LICENSE
├── MANIFEST.in
├── README.md
├── requirements.txt
└── setup.py
Setup Instructions
1. Clone the repository
git clone https://github.com/Shivansh-varshney/MuffinBite
2. Install the project in a virtual environment
pip install /path/to/muffinbite/
3. Enter the MuffinBite CLI
bite
4. First-time setup
bite> build
bite> help
Place Google Gmail API credentials in a credentials.json file in the working directory.
On first use, a browser window will open to complete authentication and generate token.json.
License
MIT License
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 muffinbite-0.1.7.tar.gz.
File metadata
- Download URL: muffinbite-0.1.7.tar.gz
- Upload date:
- Size: 20.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4055471951670a2b892fbeee20f34a9fa0cd37bd5603caf56b722fa64bd44b5a
|
|
| MD5 |
c283e752068304caafd822a2b9e8bc18
|
|
| BLAKE2b-256 |
bf14d5c91bebb30d743536a004da6cc9eff0c9fee9863ffaaefe3b6e4aec69de
|
File details
Details for the file muffinbite-0.1.7-py3-none-any.whl.
File metadata
- Download URL: muffinbite-0.1.7-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a5e6da3efbd7be1951cbcd1aa2e04f8b9aa35925abc68614fde0706aa9d70f9
|
|
| MD5 |
bca3a95555168912ca4cc937bc01a969
|
|
| BLAKE2b-256 |
356126a6565fc2ff81b6236974911c72e170b902fd5d76ca5e2164af7c5a8beb
|