Professional Bulk Email Campaign Management System ๐
Streamline your email marketing campaigns with enterprise-grade bulk email management โจ
๐ Quick Start โข โจ Features โข ๐ Usage โข ๐ค Contributing
BulkMail Pro is a powerful Flask-based web application designed to revolutionize your email marketing campaigns. Built with scalability and user experience in mind, it provides a comprehensive solution for managing bulk email operations with professional-grade features.
- Secure Login System: Robust user authentication with session management
- User Registration: Easy signup process with email verification
- Password Reset: Secure password recovery functionality
- Role-Based Access: Admin and user privilege management
- User Management: Complete control over user accounts and permissions
- Activity Monitoring: Real-time tracking of user actions and system events
- Email Analytics: Comprehensive logs of all email campaigns and delivery status
- System Oversight: Monitor application performance and usage statistics
- SMTP Configuration: Custom SMTP settings for each user account
- Bulk Email Sending: Efficient processing of large email lists
- File Upload Support: Extract email addresses from text files automatically
- Campaign Tracking: Monitor email delivery status and engagement metrics
- File Management: Automatic cleanup of temporary uploads
- Activity Logging: Detailed audit trail of all user actions
- Database Management: SQLite integration with migration support
- Environment Configuration: Secure handling of sensitive credentials
- Python 3.7 or higher
- pip package manager
- Git
# 1๏ธโฃ Clone the Repository
git clone https://github.com/khaliduzzamantanoy/bulkmail.git
cd bulkmail
# 2๏ธโฃ Set Up Virtual Environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# 3๏ธโฃ Install Dependencies
pip install -r requirements.txtCreate a .env file in the root directory:
# ๐ Security Configuration
SECRET_KEY=your-super-secret-key-here
# ๐ง SMTP Settings
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_EMAIL=your-email@gmail.com
SMTP_PASSWORD=your-app-password
# ๐๏ธ Database Configuration (Optional)
DATABASE_URL=sqlite:///instance/users.db# Initialize database migrations
flask db init
# Create initial migration
flask db migrate -m "Initial migration"
# Apply migrations to database
flask db upgrade# Start the development server
python app.py๐ Access your application at: http://localhost:5000
| Step | Action | Description |
|---|---|---|
| 1๏ธโฃ | Access Application | Navigate to http://localhost:5000 |
| 2๏ธโฃ | Create Account | Register a new user account |
| 3๏ธโฃ | Configure SMTP | Set up your email server settings in /account |
| 4๏ธโฃ | Upload Email List | Upload .txt file with email addresses |
| 5๏ธโฃ | Send Campaign | Launch your bulk email campaign |
Access the admin dashboard at /admin to:
- ๐ฅ Manage user accounts and permissions
- ๐ View detailed activity logs
- ๐ง Monitor email campaign performance
- ๐ Analyze system usage statistics
flowchart TD
A[๐ Upload Email List] --> B[โ๏ธ Configure SMTP]
B --> C[โ๏ธ Compose Email]
C --> D[๐ Send Campaign]
D --> E[๐ Monitor Results]
E --> F[๐ View Analytics]
style A fill:#e3f2fd
style F fill:#f3e5f5
Create a .txt file with one email address per line:
user1@example.com
user2@example.com
user3@example.com
marketing@company.com| Component | Technology | Purpose |
|---|---|---|
| ๐ Backend | Flask | Web framework and API |
| ๐๏ธ Database | SQLite | Data storage and management |
| ๐จ Frontend | HTML/CSS/JS | User interface |
| ๐ง Email | SMTP | Email delivery system |
| ๐ Authentication | Flask-Login | Session management |
| ๐ Migration | Flask-Migrate | Database versioning |
๐ฎ Popular SMTP Configuration Examples
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_EMAIL=your-email@gmail.com
SMTP_PASSWORD=your-app-passwordSMTP_SERVER=smtp-mail.outlook.com
SMTP_PORT=587
SMTP_EMAIL=your-email@outlook.com
SMTP_PASSWORD=your-passwordSMTP_SERVER=smtp.mail.yahoo.com
SMTP_PORT=587
SMTP_EMAIL=your-email@yahoo.com
SMTP_PASSWORD=your-app-password- ๐ Use strong, unique SECRET_KEY
- ๐ซ Never commit
.envfile to version control - ๐ Use app-specific passwords for email providers
- ๐ก๏ธ Enable 2FA on email accounts
- ๐ Regularly monitor activity logs
โ๏ธ Deploy to Heroku
# Install Heroku CLI and login
heroku login
# Create new Heroku app
heroku create your-bulkmail-app
# Set environment variables
heroku config:set SECRET_KEY=your-secret-key
heroku config:set SMTP_SERVER=smtp.gmail.com
heroku config:set SMTP_PORT=587
heroku config:set SMTP_EMAIL=your-email@gmail.com
heroku config:set SMTP_PASSWORD=your-password
# Deploy application
git push heroku main
# Run database migrations
heroku run flask db upgrade๐ง Docker Configuration
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]# 1. ๐ด Fork the repository
# 2. ๐ฅ Clone your fork
git clone https://github.com/YOUR_USERNAME/bulkmail.git
# 3. ๐ฟ Create feature branch
git checkout -b feature/YourFeatureName
# 4. โจ Make your changes
# 5. ๐พ Commit changes
git commit -m 'Add some feature'
# 6. ๐ Push to branch
git push origin feature/YourFeatureName
# 7. ๐ Open a pull request- ๐ Bug Reports: Use issue templates with detailed descriptions
- โจ Feature Requests: Discuss new features in issues first
- ๐ Code Style: Follow PEP 8 guidelines
- ๐งช Testing: Add tests for new functionality
- ๐ Documentation: Update docs for any changes
This project is licensed under the MIT License ๐
Feel free to use, modify, and distribute this project โจ
- ๐ Store all sensitive credentials in environment variables
- ๐ซ Never hardcode passwords or API keys in source code
- ๐ก๏ธ Use HTTPS in production environments
- ๐ Regularly audit activity logs for suspicious behavior
- ๐ Use Gunicorn or uWSGI for production deployment
- ๐ Deploy on reliable platforms (Heroku, AWS, DigitalOcean)
- ๐พ Implement regular database backups
- ๐ Set up monitoring and logging systems
- ๐พ Backup Location:
instance/users.db - ๐ Migration Commands: Use Flask-Migrate for schema changes
- ๐ Monitoring: Check database size and performance regularly
| ๐ Support Channel | ๐ Link | ๐ Description |
|---|---|---|
| ๐ Issues | GitHub Issues | Bug reports and technical issues |
| ๐ก Discussions | GitHub Discussions | Feature requests and general questions |
| ๐ง Email | Contact | Direct support for urgent issues |
โญ If this project helped you, please give it a star!
Made with โค๏ธ by Khaliduzzaman Tanoy
BulkMail Pro - Professional Email Marketing Made Simple ๐ง