Skip to content

sahajrajmalla/sahajmails

Repository files navigation

SahajMails

Send personalized bulk emails — Free, Secure, Simple

No servers. No coding. Just upload, type, send.

PyPI version Python 3.8+ License: MIT Tutorial


Features

  • 100% Local: Your data never leaves your device
  • Gmail App Password: Secure authentication (no real password used)
  • CSV/Excel Upload: Supports .csv, .xlsx, .xls
  • Smart Placeholders: {{ firstName }} — case and space tolerant
  • Live Preview: Real-time HTML rendering
  • Test Email: Send to yourself before bulk
  • Attachments: PDFs, images, documents
  • Progress Tracking: Real-time log and progress bar
  • Markdown & HTML: Full email formatting support
  • Gmail-Safe: 2-second delay between sends

Quick Start

pip install sahajmails
sahajmails

Open http://localhost:8501


7-Step Guide

  1. Upload your contact list (must have email column)
  2. Enter your Gmail and App Password
  3. Compose email using {{ columnName }} placeholders
  4. Click placeholder buttons to copy instantly
  5. Attach files (optional)
  6. PreviewSend Test Email
  7. Start Bulk Send → Watch progress

Example CSV:

email,firstName,company
alice@example.com,Alice,Acme Corp
bob@work.com,Bob,StartupXYZ
Upload contacts and preview

1. Upload CSV/Excel – Instant contact preview with detected columns



Gmail login and email composer

2–3. Secure Gmail login • Rich editor with one-click placeholder buttons



Live preview and attachments

4–5. Real-time live preview • Optional file attachments (up to 200 MB each)



Bulk sending with progress tracking

6–7. Send test email • Start bulk send with real-time progress and completion status


Gmail App Password (Required)

  1. Go to myaccount.google.com/security
  2. Enable 2-Step Verification
  3. Search "App Passwords"
  4. Select App nameGenerate
  5. Copy the 16-character password → paste in the app

Installation

pip install sahajmails

Or from source:

git clone https://github.com/sahajrajmalla/sahajmails.git
cd sahajmails
pip install -e .

Development

# Install dev dependencies
pip install -e .[dev]

# Run tests
pytest tests/

# Build package
python -m build

Contributing

Contributions are welcome!

  1. Fork the repo
  2. Create a branch: git checkout -b feature/your-idea
  3. Commit changes: git commit -m "feat: add X"
  4. Push and open a Pull Request

Please follow PEP 8 and include tests.


Security & Privacy

  • Runs entirely on your machine
  • No data is stored or transmitted
  • Open source under MIT License
  • Uses Gmail App Passwords only

License

MIT License – Free for personal and commercial use.


Made with ❤️ by Sahaj Raj Malla

About

Send personalized bulk emails — Free, Secure, Simple

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors