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

Uploaded Python 3

File details

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

File metadata

  • Download URL: muffinbite-0.1.3.tar.gz
  • Upload date:
  • Size: 19.7 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.3.tar.gz
Algorithm Hash digest
SHA256 487238d497f25bbcbfe4563754499e57572908488868ab504015632e5dbe6f21
MD5 25a74cb1ef736e153abef7befd400f73
BLAKE2b-256 851a8096ce8468864951e6b8170be0d326d48ee825a5bd26e0e2729a11f27c80

See more details on using hashes here.

File details

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

File metadata

  • Download URL: muffinbite-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 23.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 79d5988c2ebd8c5ad6957182443765d295b44c02240bcfaf38d7bad44304d300
MD5 56a062c3d057b370d00abe2a441f0ad9
BLAKE2b-256 efe78a69b476dacc95571da783d90f85674ca6ef481e0a3cefaee331ddf8d246

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