Cloud Mail

A minimalist, responsive email service for sending emails, deployable on Cloudflare 🎉

## Project Showcase - [Online Demo](https://skymail.ink)
- [Deployment Guide](https://doc.skymail.ink/en/)
- [UI Deployment](https://doc.skymail.ink/en/guide/via-ui.html) | ![](/doc/demo/demo1.png) | ![](/doc/demo/demo2.png) | |--------------------------|--------------------------| | ![](/doc/demo/demo3.png) | ![](/doc/demo/demo4.png) | ## Features - **💰 Low-Cost Usage**: No server required — deploy to Cloudflare Workers to reduce costs. - **💻 Responsive Design**: Automatically adapts to both desktop and most mobile browsers. - **📧 Email Sending**: Integrated with Resend for bulk email sending, embedded images, attachments, and status tracking. - **🛡️ Admin Features**: Admins can manage users and emails, with RBAC permission control to limit access to features and resources. - **📦 Attachment Support**: Send and receive attachments, stored and downloaded via R2 object storage. - **🔔 Email Push**: Forward received emails to Telegram bots or other email providers. - **📡 Open API**: Supports batch user creation via API and multi-condition email queries - **📈 Data Visualization**: Use Echarts to visualize system data, including user email growth. - **🎨 Personalization**: Customize website title, login background, and transparency. - **🤖 CAPTCHA**: Integrated with Turnstile CAPTCHA to prevent automated registration. - **📜 More Features**: Under development... ## Tech Stack - **Serverless**: [Cloudflare Workers](https://developers.cloudflare.com/workers/) - **Web Framework**: [Hono](https://hono.dev/) - **ORM**: [Drizzle](https://orm.drizzle.team/) - **Frontend Framework**: [Vue3](https://vuejs.org/) - **UI Framework**: [Element Plus](https://element-plus.org/) - **Email Service**: [Resend](https://resend.com/) - **Cache**: [Cloudflare KV](https://developers.cloudflare.com/kv/) - **Database**: [Cloudflare D1](https://developers.cloudflare.com/d1/) - **File Storage**: [Cloudflare R2](https://developers.cloudflare.com/r2/) ## 目录结构 ``` cloud-mail ├── mail-worker # Backend worker project │ ├── src │ │ ├── api # API layer │ │ ├── const # Project constants │ │ ├── dao # Data access layer │ │ ├── email # Email processing and handling │ │ ├── entity # Database entities │ │ ├── error # Custom exceptions │ │ ├── hono # Web framework, middleware, error handling │ │ ├── i18n # Internationalization │ │ ├── init # Database and cache initialization │ │ ├── model # Response data models │ │ ├── security # Authentication and authorization │ │ ├── service # Business logic layer │ │ ├── template # Message templates │ │ ├── utils # Utility functions │ │ └── index.js # Entry point │ ├── package.json # Project dependencies │ └── wrangler.toml # Project configuration │ ├─ mail-vue # Frontend Vue project │ ├── src │ │ ├── axios # Axios configuration │ │ ├── components # Custom components │ │ ├── echarts # ECharts integration │ │ ├── i18n # Internationalization │ │ ├── init # Startup initialization │ │ ├── layout # Main layout components │ │ ├── perm # Permissions and access control │ │ ├── request # API request layer │ │ ├── router # Router configuration │ │ ├── store # Global state management │ │ ├── utils # Utility functions │ │ ├── views # Page components │ │ ├── app.vue # Root component │ │ ├── main.js # Entry JS file │ │ └── style.css # Global styles │ ├── package.json # Project dependencies └── └── env.release # Environment configuration ``` ## Support ## License This project is licensed under the [MIT](LICENSE) license. ## Communication [Telegram](https://t.me/cloud_mail_tg)