# DITMail DITMail is a web-based email client and SMTP server solution designed to provide seamless communication and faster UX. ## Features ### Web UI - Intuitive and responsive design using Tailwind CSS + Optimistic UI. - Inbox, Sent, Drafts, and Trash management. - Email filtering and search functionality with custom Haraka plugins. - Rich text email composer using similar idea as gmail. - Multi-account support using WYI's OAuth. ### SMTP Server - Secure email delivery using TLS/SSL with CA certs(depends upon you, though). - Support for custom domains. - Email queue management using Redis and BullMQ (on custom worker inside `/worker`). - Spam filtering and blacklisting . - Logging and monitoring tools. ## Installation ### Prerequisites - Docker & Docker Compose - A valid domain name for both Inbound(mx.ditmail.online) and Outbound(smtp.ditmail.online - optional) email relaying. - Inbound and oubound port 25 access (for receiving and relaying emails) - Cloudflare account if using it for DNS, for others you need to adjust the `docker-compose.yml` accordingly. - I recommend using seperate server or use Vercel (or Cloudflare worker but you have to remove all the direct TCP connections like MonogDB and Redis and use their api for https conn only as Cloudflare doen't allow that and few other tweaks too) for frontend deployment - btw, i am using Vercel (i will move to cloudflare in future as its faaaast and cheaper) ### Steps 1. Clone the repository: ```bash git clone https://github.com/DishantSinghDev2/DITMail.git ``` 2. Configure environment variables in `.env` from `.env.example` for both the `/web` and `/`. Read the comments inside the root `.env` very carefully. 3. Build and start the container: ```bash cd DITMail docker compose up -d --build ``` 4. Its running! ## Usage 1. Access the web UI at `http://localhost:3000`, SMTP servers requires port 25 for both inbound and outbound connections with 465 and 587 to relay emails remotely. 2. Configure your domain and start emailing. 3. Start sending and receiving emails! It's not for spammers, bcoz you know! (technically, if you start sending spammy emails through your servers it will only harm your IPs reputations and your IP will get blacklisted by spam filters. Nevermind if you infinte IPs.) ## AI Usage in the project - Just the basic foundations for the frontend part - Basic UI and UX - For debugging, but I didn't copy paste directly in most cases. - I guess less than 30% overall ## License MIT License. ## Contributing Contributions are welcome! Please submit a pull request or open an issue for discussion, Thanks! ## Support For support, contact us at `support@mail.dishis.tech`. And contact me at `dishant.singh@dishis[.]tech`