Skip to main content

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


Download files

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

Source Distribution

muffinbite-0.1.9.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

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

muffinbite-0.1.9-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file muffinbite-0.1.9.tar.gz.

File metadata

  • Download URL: muffinbite-0.1.9.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for muffinbite-0.1.9.tar.gz
Algorithm Hash digest
SHA256 255536ad4c8874a0792986b89f30a52efa2c9e6e073faa63844da1587a0b96f6
MD5 46cefe4f5216cc000563f60ad0902b1a
BLAKE2b-256 89f8ffe51fbc4fb64d627567c1e017c388dc42ac3b50d4f87b26710b36758173

See more details on using hashes here.

File details

Details for the file muffinbite-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: muffinbite-0.1.9-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

Hashes for muffinbite-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 943683d568ae27a19f563ee997b3c3f988d8cc9d0c4ce03f6076c1a4b642def6
MD5 c7412ad533bfddb46348a7136387c4e7
BLAKE2b-256 86ec84132ddb78013b5d582cb0f7662ea2599e4fc31f6707ba09a528e6f2c173

See more details on using hashes here.

Supported by

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