OrbitMail is a powerful, easy-to-use platform that lets users create and manage professional email addresses on their own custom domains. Whether you own saurabh.com or any other domain, OrbitMail enables you to set up emails like founder@saurabh.com, team@yourstartup.com, or any personalized address — all without relying on Gmail or third-party providers.
- 🛠️ Custom Email Creation – Instantly create email addresses like you@yourdomain.com
- 📬 Send & Receive Emails – Full email functionality with both inbound and outbound support
- 🌐 Domain-Based Identity – Build trust with professional, branded email addresses
- 🔐 Privacy & Control – All emails are handled on OrbitMail's secure, self-managed servers
- 💻 Clean, Modern UI – Easy-to-use dashboard for managing inboxes and sending messages
- 🔍 MX Record Verification – Automatic verification of domain MX records
- 📧 Email Storage – Secure storage and retrieval of all emails
- 🔐 OAuth Authentication – Sign in with Google, GitHub, or Apple
- 💳 Subscription Management – Free tier (2 emails) and paid plans (5-10 emails)
- 💰 Razorpay Integration – Secure payment processing for subscriptions
- 🚀 Custom Email Service – Built-from-scratch email infrastructure with SMTP client, DNS resolution, and queue management
- Startups & Teams – Create role-based emails like support@, founder@, team@, etc.
- Personal Branding – Use your own domain for a professional presence
- Developers – Test and manage email flow for custom domains
The application consists of four main components:
- Express Server (
expresserver/) - Main API server handling user management, domain management, and email operations - SMTP Server (
smtpserver/) - Handles incoming and outgoing email traffic - Frontend (
frontend/) - React-based user interface - Email Service (
emailservice/) - Custom email infrastructure built from scratch
- Node.js (v16 or higher)
- MongoDB (v4.4 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/saurabhhh777/OrbitMail.git cd OrbitMail -
Install dependencies for all services
# Express Server cd expresserver npm install cp env.example .env # Edit .env with your configuration # SMTP Server cd ../smtpserver npm install cp env.example .env # Edit .env with your configuration # Email Service cd ../emailservice npm install cp env.example .env # Edit .env with your configuration # Frontend cd ../frontend npm install cp env.example .env # Edit .env with your configuration
-
Configure Environment Variables
Express Server (
expresserver/.env):MONGODB_URL=mongodb://localhost:27017/orbitmail JWT_SECRET=your-super-secret-jwt-key-here PORT=3000 FRONTEND_URL=http://localhost:5173
SMTP Server (
smtpserver/.env):SMTP_PORT=2525 EXPRESS_URL=http://localhost:3000
Email Service (
emailservice/.env):EMAIL_SERVICE_PORT=3001 EXPRESS_URL=http://localhost:3000
Frontend (
frontend/.env):VITE_EXPRESS_URL=http://localhost:3000/api
-
Start the services
# Terminal 1: Express Server cd expresserver npm run dev # Terminal 2: SMTP Server cd smtpserver npm start # Terminal 3: Email Service (optional - for custom email sending) cd emailservice npm run dev # Terminal 4: Frontend cd frontend npm run dev
The email service provides a complete email infrastructure built from scratch:
- Custom SMTP Client: Raw TCP/TLS implementation
- DNS Resolution: MX record lookup and domain verification
- Email Queue: Background processing with retry logic
- Authentication: SPF, DKIM, DMARC validation
- Rate Limiting: Built-in rate limiting for email sending
import { OrbitMailEmailService } from './emailservice/dist/index';
const emailService = new OrbitMailEmailService();
// Add domain
await emailService.addDomain('example.com', ['mx1.example.com']);
// Send email
const jobId = await emailService.sendFromDomain(
'user@example.com',
'recipient@gmail.com',
'Test Subject',
'Hello, this is a test email!'
);POST /api/v1/user/signup- User registrationPOST /api/v1/user/signin- User loginPOST /api/v1/user/signout- User logoutGET /api/v1/user/check-status- Check authentication status
POST /api/v1/userdomain/add- Add new domainGET /api/v1/userdomain/all- Get user domainsPOST /api/v1/userdomain/verify- Verify domain MX recordsPOST /api/v1/userdomain/:id/emails- Add email prefixDELETE /api/v1/userdomain/:id/emails/:prefix- Remove email prefix
POST /api/v1/email/send- Send emailPOST /api/v1/email/get- Get user emailsGET /api/v1/email/analytics- Get email analyticsGET /api/v1/email/service/status- Get email service statusGET /api/v1/email/job/:jobId- Get email job status
GET /api/v1/payment/plans- Get subscription plansPOST /api/v1/payment/create-order- Create payment orderPOST /api/v1/payment/verify- Verify payment
GET /api/v1/admin/dashboard- Admin dashboardGET /api/v1/admin/users- Get all usersGET /api/v1/admin/domains- Get all domainsGET /api/v1/admin/email-analytics- Platform email analytics
OrbitMail/
├── expresserver/ # Main API server
├── smtpserver/ # SMTP server for email handling
├── emailservice/ # Custom email infrastructure
├── frontend/ # React frontend
└── README.md
# Express Server
cd expresserver
npm run build
# Email Service
cd emailservice
npm run build
# Frontend
cd frontend
npm run build- JWT Authentication: Secure token-based authentication
- OAuth Integration: Google, GitHub, Apple sign-in
- Email Authentication: SPF, DKIM, DMARC validation
- Rate Limiting: Prevent abuse and spam
- Input Validation: Comprehensive validation throughout
- Email Queue: Monitor email processing status
- Service Health: Health check endpoints
- Analytics: Email sending/receiving analytics
- Admin Dashboard: Platform-wide monitoring
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details
Built with ❤️ for Professional Email Management