FutureMail API 项目
这是一个基于.NET Core 9.0的未来邮件系统API,支持创建定时邮件、时光胶囊、AI辅助等功能。
功能特性
- 用户认证与授权
- 创建和管理未来邮件
- 时光胶囊可视化
- AI写作辅助和情感分析
- 个人时间线和统计数据
- 文件上传功能
技术栈
- .NET Core 9.0
- Entity Framework Core (Code First)
- MySQL数据库
- JWT身份验证
- Swagger API文档
- Quartz.NET任务调度
快速开始
1. 运行项目
最简单的方法是使用提供的启动脚本:
start_project.bat
这将:
- 启动API服务器
- 打开Swagger文档页面
- 打开API测试页面
2. 手动运行
如果需要手动运行,请按照以下步骤:
- 
启动API服务器: cd FutureMailAPI dotnet run
- 
访问Swagger文档: http://localhost:5003/swagger
- 
使用API测试页面: 打开 api_test.html 文件
API文档
详细的API文档请参考:
- API接口文档详细说明.md
- Swagger交互式文档:http://localhost:5003/swagger
主要接口
认证相关
- POST /api/v1/auth/register- 用户注册
- POST /api/v1/auth/login- 用户登录
- POST /api/v1/auth/refresh- 刷新令牌
- POST /api/v1/auth/logout- 用户登出
邮件管理
- POST /api/v1/mails/create- 创建邮件
- GET /api/v1/mails- 获取邮件列表
- GET /api/v1/mails/{mailId}- 获取邮件详情
- PUT /api/v1/mails/{mailId}- 更新邮件
- DELETE /api/v1/mails/{mailId}- 删除邮件
- POST /api/v1/mails/{mailId}/revoke- 撤销发送
时光胶囊
- GET /api/v1/capsules- 获取胶囊视图
- PUT /api/v1/capsules/{capsuleId}/style- 更新胶囊样式
AI助手
- POST /api/v1/ai/writing-assistant- AI写作辅助
- POST /api/v1/ai/sentiment-analysis- 情感分析
个人空间
- GET /api/v1/timeline- 获取时间线
- GET /api/v1/statistics- 获取统计数据
- GET /api/v1/user/profile- 获取用户信息
文件上传
- POST /api/v1/upload/attachment- 上传附件
- POST /api/v1/upload/avatar- 上传头像
数据库配置
数据库连接字符串配置在 appsettings.json 文件中:
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=FutureMailDB;User=root;Password=yourpassword;"
  }
}
请根据您的MySQL配置修改连接字符串。
项目结构
FutureMailAPI/
├── Controllers/          # API控制器
├── DTOs/                # 数据传输对象
├── Data/                # 数据模型和上下文
├── Helpers/             # 辅助类
├── Middleware/          # 中间件
├── Services/            # 服务类
├── Program.cs           # 应用程序入口点
└── appsettings.json     # 配置文件
测试
项目包含一个完整的API测试页面 api_test.html,可以测试所有主要API接口。
注意事项
- 确保MySQL服务器已安装并运行
- 首次运行时,EF Core会自动创建数据库和表
- JWT密钥应在生产环境中更改为安全的值
- 文件上传功能需要配置适当的存储路径
许可证
本项目仅供学习和演示使用。
Description
				
					Languages
				
				
								
								
									C#
								
								87%
							
						
							
								
								
									HTML
								
								11.8%
							
						
							
								
								
									PowerShell
								
								0.6%
							
						
							
								
								
									JavaScript
								
								0.5%
							
						
							
								
								
									Batchfile
								
								0.1%