Skip to content

A script that reads developer candidate data from an Excel file and sends personalized HTML emails in bulk, with proper rate limiting and error handling.

Notifications You must be signed in to change notification settings

Stroller15/auto-bulk-email-sender

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bulk Email Sender for Developer Outreach

A Node.js application for sending personalized bulk emails to potential developer candidates. The application reads recipient data from an Excel file and sends professional HTML emails with proper rate limiting and error handling.

Features

  • 📊 Excel file support for managing recipient data
  • ✉️ Professional HTML email templates
  • 🔄 Automatic retry logic for failed emails
  • ⚡ Rate limiting to prevent spam flags
  • 🔒 Input sanitization and validation
  • 📈 Progress tracking and success rate reporting
  • 🎨 Customizable email templates
  • ⏱️ Connection pooling for better performance

Prerequisites

  • Node.js (v14 or higher)
  • Gmail account
  • Gmail App Password (2FA must be enabled)

Installation

  1. Clone the repository:
git clone https://github.com/Stroller15/auto-bulk-email-sender.git
cd auto-bulk-email-sender
  1. Install dependencies:
npm install
  1. Create a .env file in the root directory:
EMAIL_USER=[email protected]
EMAIL_PASSWORD=your-app-specific-password
EMAIL_LIMIT=50
EMAIL_SIGNATURE=Your Name

Setting up Gmail App Password

  1. Go to your Google Account settings
  2. Enable 2-Step Verification if not already enabled
  3. Go to Security → App passwords
  4. Select "Mail" and "Other (Custom name)"
  5. Copy the generated password and use it in your .env file

Preparing the Excel File

Create an Excel file with the following columns:

  • Name: Full name of the recipient
  • Email: Valid email address
  • Title: Current job title
  • Company: Company name

Example:

Name Email Title Company
John Doe [email protected] Senior Developer Tech Corp
Jane Smith [email protected] Lead Engineer Dev Inc

Usage

Run the application with:

node emailSender.js path/to/your/excel-file.xlsx

The script will:

  1. Validate your environment variables
  2. Load and validate the Excel file
  3. Verify SMTP connection
  4. Send emails with progress tracking
  5. Display a summary report

Rate Limiting

The application includes built-in rate limiting:

  • Maximum 1 concurrent connection
  • 2-second delay between emails
  • Maximum 30 emails per minute

These settings can be modified in the createTransporter function.

Error Handling

  • Retries failed emails up to 3 times
  • 5-second delay between retry attempts
  • Detailed error logging
  • Input validation for all data

Customization

Email Template

The email template can be customized by modifying the getEmailBody function. The current template includes:

  • Personalized greeting
  • Professional formatting
  • Responsive design
  • Unsubscribe information
  • XSS protection

Configuration

Adjust these environment variables in your .env file:

  • EMAIL_LIMIT: Maximum number of emails to send
  • EMAIL_SIGNATURE: Your signature for the emails

Security Considerations

  • Use environment variables for sensitive data
  • Input sanitization prevents XSS attacks
  • Rate limiting prevents spam flagging
  • Validates email addresses and data structure

Contributing

  1. Fork the repository
  2. Create your 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.

Disclaimer

Please ensure you comply with all applicable email regulations and privacy laws in your jurisdiction. This tool should only be used for legitimate business communications with proper consent from recipients.

About

A script that reads developer candidate data from an Excel file and sends personalized HTML emails in bulk, with proper rate limiting and error handling.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published