c67067a2a4831c70841d5d39519b0ea69d2d8b54
GNX Mail - Modern Email Client
A comprehensive, secure, and feature-rich email server built with Django and React. GNX Mail provides a complete email solution with modern UI, advanced security features, and enterprise-grade functionality.
🚀 Features
Core Email Functionality
- Send & Receive Emails: Full SMTP/IMAP support with multiple email providers
- Rich Text Editor: Compose emails with rich formatting, attachments, and signatures
- Email Threading: Conversation view for better email organization
- Advanced Search: Powerful search with filters and saved searches
- Email Templates: Create and manage reusable email templates
- Auto-reply: Set up automatic responses for out-of-office scenarios
Security & Privacy
- End-to-End Encryption: Secure email communication
- Two-Factor Authentication: Enhanced account security
- Rate Limiting: Protection against spam and abuse
- CSRF Protection: Cross-site request forgery protection
- Secure Password Storage: Encrypted password storage with bcrypt
- Login Attempt Monitoring: Track and prevent unauthorized access
User Experience
- Modern React UI: Beautiful, responsive interface
- Dark/Light Theme: Customizable appearance
- Mobile Responsive: Works perfectly on all devices
- Real-time Notifications: Instant email notifications
- Drag & Drop: Easy file attachment handling
- Keyboard Shortcuts: Power user features
Organization & Management
- Custom Folders: Organize emails with custom folders
- Contact Management: Comprehensive contact system with groups
- Email Rules: Automated email processing and organization
- Bulk Actions: Manage multiple emails at once
- Email Signatures: Professional email signatures
- Import/Export: Backup and restore functionality
Enterprise Features
- Multi-user Support: Team collaboration features
- Admin Dashboard: Comprehensive administration panel
- API Access: RESTful API for integrations
- Audit Logs: Complete activity tracking
- Scalable Architecture: Built for growth
🛠 Technology Stack
Backend
- Django 4.2: Python web framework
- PostgreSQL: Robust database system
- Redis: Caching and message broker
- Celery: Asynchronous task processing
- JWT Authentication: Secure token-based auth
- Django REST Framework: API development
Frontend
- React 18: Modern JavaScript framework
- Tailwind CSS: Utility-first CSS framework
- React Query: Data fetching and caching
- React Hook Form: Form handling
- Lucide React: Beautiful icons
- Framer Motion: Smooth animations
Infrastructure
- Docker: Containerization
- Nginx: Reverse proxy and load balancer
- Gunicorn: WSGI HTTP server
- SSL/TLS: Secure connections
📦 Installation
Prerequisites
- Python 3.11+
- Node.js 16+
- PostgreSQL 13+
- Redis 6+
- Docker (optional)
Quick Start with Docker
-
Clone the repository
git clone <repository-url> cd gnx-mail -
Start with Docker Compose
docker-compose up --build -
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Admin Panel: http://localhost:8000/admin
Manual Installation
-
Clone and setup
git clone <repository-url> cd gnx-mail chmod +x scripts/setup.sh ./scripts/setup.sh -
Configure environment
cp env.example .env # Edit .env with your settings -
Start services
# Terminal 1: Django server source venv/bin/activate python manage.py runserver # Terminal 2: Celery worker celery -A gnxmail worker -l info # Terminal 3: Frontend cd frontend npm start
⚙️ Configuration
Environment Variables
Create a .env file with the following variables:
# Django Settings
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# Database
DB_NAME=gnxmail
DB_USER=postgres
DB_PASSWORD=password
DB_HOST=localhost
DB_PORT=5432
# Email Settings
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password
# Redis
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/0
Email Provider Setup
Gmail
- Enable 2-factor authentication
- Generate an app password
- Use the app password in EMAIL_HOST_PASSWORD
Other Providers
- Outlook: smtp-mail.outlook.com:587
- Yahoo: smtp.mail.yahoo.com:587
- Custom SMTP: Configure your own SMTP server
🔧 API Documentation
Authentication
# Register
POST /api/accounts/register/
{
"email": "user@example.com",
"username": "username",
"first_name": "John",
"last_name": "Doe",
"password": "securepassword",
"password_confirm": "securepassword"
}
# Login
POST /api/accounts/login/
{
"email": "user@example.com",
"password": "securepassword"
}
Email Operations
# Send Email
POST /api/emails/send/
{
"to_emails": ["recipient@example.com"],
"subject": "Hello",
"body_text": "Hello world!",
"attachments": [file1, file2]
}
# Get Emails
GET /api/emails/?search=keyword&is_read=false
# Mark as Read
PATCH /api/emails/{id}/
{
"is_read": true
}
🚀 Deployment
Production Deployment
-
Update settings for production
DEBUG = False ALLOWED_HOSTS = ['yourdomain.com'] SECURE_SSL_REDIRECT = True -
Use Docker Compose
docker-compose -f docker-compose.prod.yml up -d -
Set up SSL certificates
# Using Let's Encrypt certbot --nginx -d yourdomain.com
Environment-specific Configurations
- Development: Use SQLite and local Redis
- Staging: Use PostgreSQL with Docker
- Production: Use managed databases and Redis
🔒 Security Features
Authentication & Authorization
- JWT token-based authentication
- Password strength validation
- Account lockout after failed attempts
- Session management
Data Protection
- Encrypted password storage
- CSRF protection
- XSS prevention
- SQL injection protection
- Rate limiting
Email Security
- SPF, DKIM, DMARC support
- Email encryption
- Attachment scanning
- Spam filtering
📊 Monitoring & Logging
Application Monitoring
- Health check endpoints
- Performance metrics
- Error tracking
- User activity logs
Email Monitoring
- Delivery status tracking
- Bounce handling
- Spam detection
- Usage analytics
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
Development Guidelines
- Follow PEP 8 for Python code
- Use ESLint for JavaScript
- Write comprehensive tests
- Update documentation
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Support
Documentation
Community
🎯 Roadmap
Upcoming Features
- Mobile apps (iOS/Android)
- Calendar integration
- Video conferencing
- Advanced AI features
- Multi-language support
- Plugin system
Performance Improvements
- Database optimization
- Caching strategies
- CDN integration
- Load balancing
GNX Mail - The future of email communication. Built with ❤️ using Django and React.
Description
Languages
Python
97%
JavaScript
1.5%
HTML
0.9%
CSS
0.4%
C
0.1%