{"id":26027764,"url":"https://github.com/stroller15/auto-bulk-email-sender","last_synced_at":"2026-06-05T19:31:09.616Z","repository":{"id":277958159,"uuid":"934044914","full_name":"Stroller15/auto-bulk-email-sender","owner":"Stroller15","description":"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.","archived":false,"fork":false,"pushed_at":"2025-02-17T07:23:07.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-04T01:47:40.336Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Stroller15.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-17T07:19:57.000Z","updated_at":"2025-12-03T14:39:22.000Z","dependencies_parsed_at":"2025-02-17T08:28:39.072Z","dependency_job_id":"a7119bea-a620-415d-86e4-d3380b3a3326","html_url":"https://github.com/Stroller15/auto-bulk-email-sender","commit_stats":null,"previous_names":["stroller15/auto-email-sender"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Stroller15/auto-bulk-email-sender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stroller15%2Fauto-bulk-email-sender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stroller15%2Fauto-bulk-email-sender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stroller15%2Fauto-bulk-email-sender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stroller15%2Fauto-bulk-email-sender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Stroller15","download_url":"https://codeload.github.com/Stroller15/auto-bulk-email-sender/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stroller15%2Fauto-bulk-email-sender/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33957496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-06T16:57:15.041Z","updated_at":"2026-06-05T19:31:09.585Z","avatar_url":"https://github.com/Stroller15.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bulk Email Sender for Developer Outreach\n\nA 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.\n\n## Features\n\n- 📊 Excel file support for managing recipient data\n- ✉️ Professional HTML email templates\n- 🔄 Automatic retry logic for failed emails\n- ⚡ Rate limiting to prevent spam flags\n- 🔒 Input sanitization and validation\n- 📈 Progress tracking and success rate reporting\n- 🎨 Customizable email templates\n- ⏱️ Connection pooling for better performance\n\n## Prerequisites\n\n- Node.js (v14 or higher)\n- Gmail account\n- Gmail App Password (2FA must be enabled)\n\n## Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/Stroller15/auto-bulk-email-sender.git\ncd auto-bulk-email-sender\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Create a `.env` file in the root directory:\n```env\nEMAIL_USER=your.email@gmail.com\nEMAIL_PASSWORD=your-app-specific-password\nEMAIL_LIMIT=50\nEMAIL_SIGNATURE=Your Name\n```\n\n## Setting up Gmail App Password\n\n1. Go to your Google Account settings\n2. Enable 2-Step Verification if not already enabled\n3. Go to Security → App passwords\n4. Select \"Mail\" and \"Other (Custom name)\"\n5. Copy the generated password and use it in your `.env` file\n\n## Preparing the Excel File\n\nCreate an Excel file with the following columns:\n- `Name`: Full name of the recipient\n- `Email`: Valid email address\n- `Title`: Current job title\n- `Company`: Company name\n\nExample:\n| Name | Email | Title | Company |\n|------|--------|--------|---------|\n| John Doe | john@example.com | Senior Developer | Tech Corp |\n| Jane Smith | jane@example.com | Lead Engineer | Dev Inc |\n\n## Usage\n\nRun the application with:\n```bash\nnode emailSender.js path/to/your/excel-file.xlsx\n```\n\nThe script will:\n1. Validate your environment variables\n2. Load and validate the Excel file\n3. Verify SMTP connection\n4. Send emails with progress tracking\n5. Display a summary report\n\n## Rate Limiting\n\nThe application includes built-in rate limiting:\n- Maximum 1 concurrent connection\n- 2-second delay between emails\n- Maximum 30 emails per minute\n\nThese settings can be modified in the `createTransporter` function.\n\n## Error Handling\n\n- Retries failed emails up to 3 times\n- 5-second delay between retry attempts\n- Detailed error logging\n- Input validation for all data\n\n## Customization\n\n### Email Template\n\nThe email template can be customized by modifying the `getEmailBody` function. The current template includes:\n- Personalized greeting\n- Professional formatting\n- Responsive design\n- Unsubscribe information\n- XSS protection\n\n### Configuration\n\nAdjust these environment variables in your `.env` file:\n- `EMAIL_LIMIT`: Maximum number of emails to send\n- `EMAIL_SIGNATURE`: Your signature for the emails\n\n## Security Considerations\n\n- Use environment variables for sensitive data\n- Input sanitization prevents XSS attacks\n- Rate limiting prevents spam flagging\n- Validates email addresses and data structure\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Disclaimer\n\nPlease 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstroller15%2Fauto-bulk-email-sender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstroller15%2Fauto-bulk-email-sender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstroller15%2Fauto-bulk-email-sender/lists"}