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)
|  |  |
|--------------------------|--------------------------|
|  |  |
## 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)