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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
487238d497f25bbcbfe4563754499e57572908488868ab504015632e5dbe6f21
|
|
| MD5 |
25a74cb1ef736e153abef7befd400f73
|
|
| BLAKE2b-256 |
851a8096ce8468864951e6b8170be0d326d48ee825a5bd26e0e2729a11f27c80
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79d5988c2ebd8c5ad6957182443765d295b44c02240bcfaf38d7bad44304d300
|
|
| MD5 |
56a062c3d057b370d00abe2a441f0ad9
|
|
| BLAKE2b-256 |
efe78a69b476dacc95571da783d90f85674ca6ef481e0a3cefaee331ddf8d246
|