mirror of
https://github.com/schroinerxy/cloud-mail.git
synced 2026-06-21 19:35:50 +08:00
128 lines
4.6 KiB
Markdown
128 lines
4.6 KiB
Markdown
|
|
<p align="center">
|
|
<img src="doc/demo/logo.png" width="80px" />
|
|
</p>
|
|
|
|
<div align="center">
|
|
<h1>Cloud Mail</h1>
|
|
</div>
|
|
<div align="center">
|
|
<h4>Serverless responsive email service with sending capabilities, deployable on the Cloudflare platform 🎉</h4>
|
|
</div>
|
|
|
|
|
|
## Project Showcase
|
|
|
|
- [Online Demo](https://skymail.ink)<br>
|
|
- [Deployment Guide](https://doc.skymail.ink/en/)<br>
|
|
- [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
|
|
|
|
<a href="https://doc.skymail.ink/support.html">
|
|
<img width="170px" src="./doc/images/support.png" alt="">
|
|
</a>
|
|
|
|
## License
|
|
|
|
This project is licensed under the [MIT](LICENSE) license.
|
|
|
|
## Communication
|
|
|
|
[Telegram](https://t.me/cloud_mail_tg)
|