Iliyan Angelov c67067a2a4 Mail
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00
2025-09-14 23:24:25 +03:00

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

  1. Clone the repository

    git clone <repository-url>
    cd gnx-mail
    
  2. Start with Docker Compose

    docker-compose up --build
    
  3. Access the application

Manual Installation

  1. Clone and setup

    git clone <repository-url>
    cd gnx-mail
    chmod +x scripts/setup.sh
    ./scripts/setup.sh
    
  2. Configure environment

    cp env.example .env
    # Edit .env with your settings
    
  3. 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

  1. Enable 2-factor authentication
  2. Generate an app password
  3. 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

  1. Update settings for production

    DEBUG = False
    ALLOWED_HOSTS = ['yourdomain.com']
    SECURE_SSL_REDIRECT = True
    
  2. Use Docker Compose

    docker-compose -f docker-compose.prod.yml up -d
    
  3. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. 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
Enterprise GNX Mail
Readme 132 MiB
Languages
Python 97%
JavaScript 1.5%
HTML 0.9%
CSS 0.4%
C 0.1%