Skip to main content

SahajMails

Send personalized bulk emails — Free, Secure, Simple

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

PyPI version Python 3.8+ License: MIT


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. Preview → Send Test Email
  7. Start Bulk Send → Watch progress

Example CSV:

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

Gmail App Password (Required)

  1. Go to myaccount.google.com/security
  2. Enable 2-Step Verification
  3. Search "App Passwords"
  4. Select App name → Generate
  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

Release files for sahajmails 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sahajmails 1.0.1
File Size Uploaded
sahajmails-1.0.1.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sahajmails 1.0.1
File Interpreter ABI Platform
sahajmails-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 23.2 kB

Release files / sahajmails-1.0.1.tar.gz

Download URL sahajmails-1.0.1.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
76fea8741c882f4890e11a6106a2ddddfb7c3f162d6db79100b2c8ef928fbf1c
BLAKE2b-256 checksum
How to use checksums
f72bd4136b2cd0b94072334898e4f16f2e23f449c1aa3d8c161d697448870bfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / sahajmails-1.0.1-py3-none-any.whl

Download URL sahajmails-1.0.1-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c3729e622ca1ad8900ff251b1d70d72df17f7d92bfc8a89e3aad29bb5527e363
BLAKE2b-256 checksum
How to use checksums
7366ceb90508578151da4105d6a6b039ce4235eb713b63851e7d5419801ba8b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page