You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.8 KiB
2.8 KiB
邮件客户端 Android App
基于SMTP/POP3协议的Android邮件客户端,配合Flask邮件服务器使用。
功能特性
- 用户注册/登录(通过HTTP API)
- 通过POP3协议接收邮件
- 通过SMTP协议发送邮件
- 通过POP3协议删除邮件
- 通讯录管理(通过HTTP API)
- 服务器配置
协议使用说明
邮件功能(SMTP/POP3)
| 功能 | 协议 | 说明 |
|---|---|---|
| 发送邮件 | SMTP | 连接SMTP服务器(端口2525)发送 |
| 接收邮件 | POP3 | 连接POP3服务器(端口1100)获取 |
| 删除邮件 | POP3 | 通过POP3的DELE命令删除 |
其他功能(HTTP API)
| 功能 | 接口 |
|---|---|
| 用户登录 | POST /api/auth/login |
| 用户注册 | POST /api/auth/register |
| 通讯录管理 | /api/contacts |
项目结构
EmailClientAndroid/
├── app/src/main/java/com/example/emailclient/
│ ├── data/ # 数据模型
│ ├── network/
│ │ ├── SmtpClient.kt # SMTP客户端(发送邮件)
│ │ ├── Pop3Client.kt # POP3客户端(接收/删除邮件)
│ │ ├── ApiService.kt # HTTP API(认证/通讯录)
│ │ └── RetrofitClient.kt
│ └── ui/ # 界面层
└── app/src/main/res/ # 资源文件
SMTP发送邮件流程
1. 连接SMTP服务器 (端口2525)
2. 接收: 220 服务器就绪
3. 发送: EHLO localhost
4. 接收: 250 OK
5. 发送: MAIL FROM:<发件人邮箱>
6. 接收: 250 OK
7. 发送: RCPT TO:<收件人邮箱>
8. 接收: 250 OK
9. 发送: DATA
10. 接收: 354 开始输入
11. 发送: 邮件头和正文,以"."结束
12. 接收: 250 OK
13. 发送: QUIT
POP3接收邮件流程
1. 连接POP3服务器 (端口1100)
2. 接收: +OK 服务器就绪
3. 发送: USER 用户名
4. 接收: +OK
5. 发送: PASS 密码
6. 接收: +OK 登录成功
7. 发送: STAT
8. 接收: +OK 邮件数量 总大小
9. 发送: UIDL (获取邮件唯一ID)
10. 发送: RETR n (获取第n封邮件)
11. 发送: DELE n (删除第n封邮件)
12. 发送: QUIT (确认删除并断开)
配置说明
在App设置页面配置:
- 服务器地址:邮件服务器IP
- 模拟器使用
10.0.2.2访问本机 - 真机使用服务器实际IP
- 模拟器使用
- SMTP端口:默认
2525 - POP3端口:默认
1100 - API端口:默认
5000
编译运行
- 启动服务端:
cd email_system
pip install -r requirements.txt
python app.py
-
用Android Studio打开
EmailClientAndroid目录 -
同步Gradle依赖
-
在设置中配置服务器地址
-
运行应用
使用流程
- 注册/登录账号
- 输入密码验证身份(用于POP3认证)
- 自动通过POP3获取收件箱邮件
- 点击邮件查看详情
- 长按邮件可删除(通过POP3)
- 点击右下角按钮写邮件(通过SMTP发送)