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.7.tar.gz (20.5 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.7-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

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

Hashes for muffinbite-0.1.7.tar.gz
Algorithm Hash digest
SHA256 4055471951670a2b892fbeee20f34a9fa0cd37bd5603caf56b722fa64bd44b5a
MD5 c283e752068304caafd822a2b9e8bc18
BLAKE2b-256 bf14d5c91bebb30d743536a004da6cc9eff0c9fee9863ffaaefe3b6e4aec69de

See more details on using hashes here.

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

Hashes for muffinbite-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 2a5e6da3efbd7be1951cbcd1aa2e04f8b9aa35925abc68614fde0706aa9d70f9
MD5 bca3a95555168912ca4cc937bc01a969
BLAKE2b-256 356126a6565fc2ff81b6236974911c72e170b902fd5d76ca5e2164af7c5a8beb

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