Skip to main content

No project description provided

Project description

MuffinBite

MuffinBite is a CLI-based email automation tool built in Python. It allows you to send personalized emails in bulk, attach files seamlessly, and manage campaigns with ease. MuffinBite supports the Gmail API and any other SMTP service provider, making it flexible for different use cases.

It’s ideal for small businesses, marketers, or anyone looking to send large-scale emails without hitting restrictive limits.


Features

  • Send bulk emails using the Gmail API
  • SMTP support for ESPs such as Brevo, Mailgun, Postmark, and others
  • Create, list, show, and delete campaigns with subject, template, attachments, CC/BCC, etc.
  • Send bulk HTML template emails with embedded images (base64 supported)
  • Personalize email content using CSV/Excel data sources
  • Insert variables into subject lines and email bodies for dynamic outreach
  • Attach unlimited files of any type
  • Add custom HTML signatures to all outgoing emails (with enable/disable toggle)
  • Set a custom time delay between sending emails to avoid spam filters
  • Test mode: send emails using test data files before running real campaigns
  • Real-time directory watching: automatically refreshes session data when files in Attachments or DataFiles change
  • Log successful and failed email attempts to CSV files
  • Detailed error logging to file when debug mode is enabled
  • Configure all settings (user, provider, debug, delay, signature, etc.) via CLI
  • Run shell commands directly from the MuffinBite CLI using !<command>

Upcoming Features

  • Fetch drafts directly from Gmail
  • Google Sheets integration for recipient data
  • Unit Tests support

Available commands

Available MuffinBite commands:

    build - Create the necessary directories and files for the working of the project

    camp - Maintains campaign
        Example:
            camp --create                   (creates new campaign)
            camp --show   'campaign_name'   (shows a specific campaign)
            camp --delete 'campaign_name'   (delete a specific campaign)
            camp --list                     (list all the campaigns)

    send - Sends emails 
        Example:
            send --test (sends emails from test data)
            send --real (sends emails from real data)

    config - Configure settings.
        Example:
            config --user-name name                             (resets user email)
            config --user-email firstname.lastname@example.com  (resets the user email)
            config --service-provider-name provider_name        (resets service provider name)
            config --service-provider-server server_address     (resets service provider server address)
            config --service-provider-login login               (resets service provider login ID)
            config --service-provider-port 000                  (resets service provider port number)
            config --signature <html>                           (add signature to all the outgoing mails)
            config --signature-on                               (turn signatures ON)
            config --signature-off                              (turn signatures OFF)
            config --time-delay 0.00                            (time gap between two emails)
            config --show                                       (shows the current configurations)
            config --debug True/False                           (switches debug mode for error logs)

    exit - Exit the MuffinBite

    reset - Deletes the config file

    help - Shows all the available commands and their uses
Use !<command> for direct shell commands like `ls`, `clear`, `pwd`, etc.


Folder Structure

repo_root/
├── muffinbite/
│   ├── commands/            # CLI commands
│   │   ├── __init__.py
│   │   ├── build.py
│   │   ├── campaign.py
│   │   ├── configure.py
│   │   ├── quit.py
│   │   ├── reset_config.py
│   │   └── send.py
│   │
│   ├── esp/                 # Email service providers integration
│   │   ├── __init__.py
│   │   ├── google_esp.py
│   │   └── smtp_esp.py
│   │
│   ├── management/          # Core management and CLI setup
│   │   ├── __init__.py
│   │   ├── cli.py
│   │   ├── session_watcher.py
│   │   └── settings.py
│   │
│   ├── sender/              # Email sending logic
│   │   ├── __init__.py
│   │   └── sender.py
│   │
│   └── utils/               # Helper functions and abstract classes
│       ├── __init__.py
│       ├── abstracts.py
│       ├── helpers.py
│       └── hybridcompleter.py
│
├── LICENSE
├── MANIFEST.in
├── README.md
├── requirements.txt
└── setup.py


Setup Instructions

1. Clone the repository locally

git clone https://github.com/Shivansh-varshney/MuffinBite

2. Install the cloned project in your virtual environment

pip install /path/to/muffinbite/

3. Enter the MuffinBite CLI

(environment) shivansh@shivansh:~/Desktop/all_codes/tryMuffinBite$ bite

4. For the first time run 'build' or 'help'

bite> build
bite> help

Put the credentials for Google Gmail Api in credentials.json file in the working directory. If you are using gmail api then first run will open a browser window for logging in and generate token.json for authentication.

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: muffinbite-0.1.1.tar.gz
  • Upload date:
  • Size: 18.9 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.1.tar.gz
Algorithm Hash digest
SHA256 289a4b55588fbb0c69e883e4d641d518c36845b025fec76f69253a4ca9f2b202
MD5 d80635dd510693218096ec40bb05308a
BLAKE2b-256 e83a7e3871ee75e2d4bf5ac526a8248757aa256ec648ec8fdbb055d707d79800

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muffinbite-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 21.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8ff0673a835f59ac794387b96fbca58bd2a0afb7b6a2a07dfb15358177ea1df7
MD5 918c1fe84bb047e1c45c4af5fab85a0e
BLAKE2b-256 7db13463404a58cb2c47880232df4b0773022ee0dea9b51e0272b9722d125481

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