Skip to content

Rahul-14507/email_automator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AutoMailer πŸ“§

Python License Platform

A powerful desktop application for sending personalized bulk emails with customized PDF certificates/attachments. Built with a modern GUI using CustomTkinter.

✨ Features

🎨 Modern Desktop GUI

  • Tabbed Interface: Clean organization (Dashboard, History, Settings)
  • Real-time Progress: Live logging and progress bar
  • Dark Mode: Eye-friendly modern design
  • History Tracking: View all processed emails with refresh/clear options

πŸ“Š Flexible Input Sources

  • Local Files: CSV, Excel (.xlsx), JSON
  • Google Sheets: Paste a shareable link and go
  • Google Docs: Use template documents from Google Drive

πŸ“„ Dynamic PDF Generation

  • Word Templates: Use .docx files with {{PlaceholderName}} syntax
  • Auto-Replace: Any column in your data (e.g., {{Name}}, {{Email}}, {{Course}})
  • Professional Output: Generated PDFs saved automatically

πŸ”„ Smart Automation

  • Duplicate Prevention: Tracks processed emails to avoid re-sending
  • Continuous Monitoring: Auto-check Google Sheets for new entries periodically
  • Rate Limiting: Built-in throttling to stay within Gmail limits

πŸ”’ Secure & Reliable

  • Gmail App Passwords: Secure SMTP authentication
  • Retry Logic: Automatic retries with exponential backoff
  • Input Validation: Email format checking before sending

πŸ“₯ Download & Installation

Option 1: Download Standalone Executable (Recommended for Users)

  1. Go to the Releases page
  2. Download the latest AutoMailer.exe
  3. Double-click to run - No Python installation required!

Note: Windows Defender may show a warning for unsigned executables. Click "More info" β†’ "Run anyway".

Option 2: Run from Source (For Developers)

# Clone the repository
git clone https://github.com/Rahul-14507/email_automator.git
cd email_automator

# Create virtual environment
python -m venv venv
venv\Scripts\activate  # On Windows
# source venv/bin/activate  # On macOS/Linux

# Install dependencies
pip install -r requirements.txt

# Run the GUI
python gui_main.py

πŸš€ Quick Start Guide

1. Prepare Your Gmail Account

  1. Enable 2-Factor Authentication in your Google Account
  2. Generate an App Password:
    • Go to Google Account Security
    • Navigate to 2-Step Verification β†’ App passwords
    • Generate a password for "Mail" on "Windows Computer"
    • Copy this 16-character password

2. Prepare Your Data

Recipient List (CSV, Excel, or Google Sheets):

Name,Email,Company
John Doe,john@example.com,Acme Corp
Jane Smith,jane@example.com,Tech Inc

Word Template (certificate_template.docx):

Congratulations {{Name}}!

This certifies that you have completed the course.

Email: {{Email}}
Company: {{Company}}

3. Launch AutoMailer

  1. Open AutoMailer.exe
  2. Dashboard Tab:
    • Recipient List: Browse to your file OR paste Google Sheet URL
    • Template: Browse to .docx OR paste Google Doc URL
    • SMTP Username: Your Gmail address
    • SMTP App Password: Paste the 16-character password
  3. Click Start Sending βœ…

4. Monitor Progress

  • Watch the Activity Log for real-time updates
  • View the History Tab to see all processed emails
  • Check the Settings Tab for monitoring options

πŸ“‚ File Locations (When Running .exe)

All generated files are saved next to the .exe file:

Item Location
Generated PDFs ./output/pdfs/
Downloaded Sheets ./downloads/
Downloaded Templates ./downloads/
Processed Emails ./processed_emails.json

βš™οΈ Advanced Features

Continuous Monitoring

  1. Go to Settings Tab
  2. Toggle Enable Smart Monitoring
  3. Set Interval (mins) (e.g., 30)
  4. The app will auto-check your Google Sheet for new entries

History Management

  1. Go to History Tab
  2. View all previously sent emails
  3. Refresh: Reload the list
  4. Clear All: Reset the history (emails will be sent again on next run)

Keep Generated PDFs

  • Settings Tab β†’ Keep Generated PDFs: ON
  • PDFs will remain in ./output/pdfs/ after sending

πŸ”§ Configuration

The config/config.yaml file controls:

  • SMTP server settings
  • Email subject template
  • Retry logic
  • Rate limiting
  • PDF output

Example:

smtp:
  server: smtp.gmail.com
  port: 587

email:
  subject: "Your Certificate - {{name}}"

throttling:
  delay_seconds: 2
  max_per_minute: 25

πŸ› Troubleshooting

"Authentication Failed"

  • βœ… Ensure you're using an App Password, not your regular Gmail password
  • βœ… Check 2FA is enabled on your Google Account

"Template not found"

  • βœ… Make sure the Word template has .docx extension
  • βœ… For Google Docs, ensure the link has "Anyone with the link can view"

"Invalid Google Sheet URL"

  • βœ… Share the sheet with "Anyone with the link can view"
  • βœ… URL should look like: https://docs.google.com/spreadsheets/d/...

PDFs Not Generating

  • βœ… Microsoft Word must be installed (docx2pdf uses Word COM automation)
  • βœ… Check that placeholders match column names (case-insensitive)

⚠️ Limitations

Gmail Daily Sending Limits

  • Personal Accounts (@gmail.com): ~500 emails / 24 hours
  • Workspace Accounts: ~2,000 emails / 24 hours
  • Trial Accounts: May have lower limits

Note: These limits are enforced by Google, not by the AutoMailer app. If you exceed the limit, Google will temporarily block sending for up to 24 hours.


πŸ“‹ Requirements (for developers)

  • Python 3.10+
  • Microsoft Word (for PDF generation)
  • Gmail account with App Password

See requirements.txt for Python packages.


🀝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments


πŸ“§ Support

If you encounter issues:

  1. Check the Troubleshooting section
  2. Review the Activity Log in the app
  3. Open an Issue

Made with ❀️ for efficient email automation

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors