The Mass Email Sender Tool is a web application for sending personalized emails to a large number of recipients efficiently. It includes features like email scheduling, personalization tags, email tracking (open rates and click-through rates), and compliance with GDPR and CAN-SPAM regulations.
- Personalized Emails: Use tags like
{{name}}and{{email}}for custom email content. - Email Formats: Supports plain text, HTML, and Markdown.
- Scheduling: Schedule emails for specific dates and times.
- Tracking: Track email opens and link clicks.
- Batch Sending: Send emails in batches to comply with service provider limits.
- GDPR Compliance: Includes an opt-out link and user consent mechanisms.
- Data Retention: Automatically deletes old campaigns and recipient data.
- User Campaigns: Users can manage only their own campaigns.
Frontend:
- React (with Vite)
- Auth0 for authentication
Backend:
- Node.js
- Express.js
- MongoDB (for storing campaigns and recipient data)
- Nodemailer (for email delivery)
- Agenda (for scheduling emails)
Other Tools:
- Multer (file uploads)
- CSV Parser (recipient lists)
- Dotenv (environment variables)
Before running the application, ensure the following are installed:
git clone https://github.com/codedpool/mailer.git
cd mailerInstall dependencies for the backend and frontend:
# Backend dependencies
cd backend
npm install
# Frontend dependencies
cd ../frontend
npm installCreate .env files in the backend and frontend directories with the following variables:
MONGODB_URI=mongodb://localhost:27017/mailer
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-email-password
PORT=10000
DATA_RETENTION_DAYS=30
BACKEND_URL=http://localhost:10000
BATCH_SIZE=10
DELAY_BETWEEN_BATCHES=10000Use VITE_ before frontend URLs
VITE_BACKEND_URL=http://localhost:10000
VITE_FRONTEND_URL=http://localhost:5173
VITE_AUTH0_DOMAIN=your-auth0-domain.auth0.com
VITE_AUTH0_CLIENT_ID=your-auth0-client-id
VITE_AUTH0_REDIRECT_URI=http://localhost:5173cd backend
npm startThe backend server will run on http://localhost:10000.
cd frontend
npm run devThe frontend application will run on http://localhost:5173.
- Log In: Use the Login button to authenticate with Auth0.
- Create Campaign:
- Upload a CSV file with recipient data.
- Provide the email subject and content.
- Schedule the campaign if needed.
- Track Performance:
- View campaign-level and recipient-level tracking reports.
- Manage Unsubscribes:
- Recipients can unsubscribe using the opt-out link included in emails.
| Endpoint | Method | Description |
|---|---|---|
/send-email |
POST | Send or schedule emails. |
/tracking-reports |
GET | Get tracking reports for campaigns. |
/campaign-details/:id |
GET | Fetch specific campaign details. |
/track/:id |
GET | Track email opens via tracking pixels. |
/click/:id |
GET | Track link clicks and redirects. |
/unsubscribe/:email |
GET | Handle unsubscribe requests. |
mass-email-sender/
├── backend/
│ ├── config/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── services/
│ ├── utils/
│ ├── server.js
│ └── .env
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── services/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── .env
│ └── vite.config.js
├── README.md
└── .gitignore
Contributions are welcome! Follow these steps:
- Fork the repository.
- Create a new branch.
- Commit changes and push them.
- Submit a pull request.
This project is licensed under the MIT License.
For questions or feedback:
- Name: Romanch
- Email: codedpool10@gmail.com
- GitHub: codedpool
Enjoy using the Mass Email Sender Tool! 🚀🦊