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.8.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.8-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: muffinbite-0.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 2c08ef41f20bbf15a573f1bdbbdf3064446e9c1ce7f8cc6385c5977ebfb3aec3
MD5 dae654746818a994d0626b17dced9955
BLAKE2b-256 311a0bf6c15c77c266913d649697b171fbe00622b4788f9c7bc28fdd0d284936

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muffinbite-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 23.3 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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7075ad223834fd31c93ee25b16b026497f2dcd2a90a00efe14bf6e6ec952005c
MD5 c20a541e563c42e4f947f22cfc809326
BLAKE2b-256 17dfa2c33592166a57d21bc851d9a1eafe79ea7da131e6dd81caaa8762470890

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