# file-share - 文件分享

> 将文件发送到邮箱，支持多种邮箱服务商（QQ、163、Gmail等），用于快速分享文件到手机或其他设备

- Skill: `manke001-zhy/file-share` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add manke001-zhy/file-share`
- Raw SKILL.md: https://api.skillmd.com/api/skills/manke001-zhy/file-share/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: manke001-zhy (https://skillmd.com/u/manke001-zhy)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/manke001-zhy/file-share

---


# 文件分享技能

## 功能说明

一键发送文件到指定邮箱，支持附件发送。使用Python标准库，无需额外依赖，安全可靠。

## 适用场景

当你需要：
- 将电脑文件发送到手机查看
- 快速分享大文件给他人
- 在不同设备间传输文件
- 备份重要文件到邮箱

## 使用方法

### 方式1：简单命令（推荐）

直接告诉Claude：
```
把 [文件] 发送到 [邮箱地址]
把 "长江之谜.md" 发送到 manke_zhy@qq.com
发送桌面的 "报告.pdf" 到我的邮箱
```

**示例**：
```
把 "/path/to/file.docx" 发送到 example@qq.com
分享 "故事.mp3" 到 friend@163.com
```

### 方式2：交互式使用

```
帮我发个邮件
启动文件发送工具
```

然后按提示操作即可。

### 方式3：命令行使用

```bash
# 发送文件
python send_email.py 文件路径 收件人邮箱

# 指定发件邮箱
python send_email.py 文件路径 收件人邮箱 --sender your@qq.com

# 指定邮件主题
python send_email.py 文件路径 收件人邮箱 --subject "文件分享"
```

## 支持的邮箱类型

| 邮箱类型 | SMTP服务器 | 端口 | 说明 |
|---------|-----------|------|------|
| QQ邮箱 | smtp.qq.com | 587 | 需要授权码 |
| 163邮箱 | smtp.163.com | 465 | 需要授权码 |
| Gmail | smtp.gmail.com | 587 | 需要应用专用密码 |
| 其他 | 自定义 | 自定义 | 需手动输入SMTP配置 |

## 邮箱配置说明

### QQ邮箱获取授权码

1. 登录QQ邮箱网页版：https://mail.qq.com
2. 点击"设置" → "账户"
3. 找到"POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务"
4. 开启"IMAP/SMTP服务"
5. 点击"生成授权码"
6. 按提示发送短信验证
7. 复制生成的授权码（**不是QQ密码**）

### 163邮箱获取授权码

1. 登录163邮箱网页版：https://mail.163.com
2. 点击"设置" → "POP3/SMTP/IMAP"
3. 开启"IMAP/SMTP服务"
4. 设置客户端授权密码
5. 保存授权码

### Gmail获取应用专用密码

1. 登录Google账号：https://myaccount.google.com
2. 进入"安全性"设置
3. 启用两步验证（如果没有）
4. 生成"应用专用密码"
5. 选择"邮件"和"Windows计算机"
6. 复制生成的16位密码

## 技术实现

**使用工具**：
- Python 3 标准库
- `smtplib` - SMTP邮件发送
- `email.mime` - 邮件构造
- `email.header` - 邮件头编码

**核心优势**：
- ✅ 使用Python标准库，无需pip安装
- ✅ 支持TLS加密传输，安全可靠
- ✅ 自动检测文件大小，避免超限
- ✅ 友好的交互式配置
- ✅ 完善的错误处理

## 依赖项

无需额外安装依赖，使用Python标准库即可。

**Python版本要求**：Python 3.6+

## 文件大小限制

不同邮箱的附件大小限制：
- **QQ邮箱**：50MB
- **163邮箱**：50MB
- **Gmail**：25MB
- **企业邮箱**：根据具体配置

脚本会自动检测文件大小并提示。

## 安全注意事项

⚠️ **重要提示**：

1. **使用授权码，不是邮箱密码**
   - SMTP授权码是专门用于客户端的密码
   - 与邮箱登录密码不同
   - 可以随时撤销和重新生成

2. **不要在脚本中硬编码密码**
   - 脚本不会保存您的授权码
   - 每次运行都需要重新输入
   - 确保使用环境安全

3. **使用TLS加密**
   - 所有传输都经过加密
   - 不会被中间人窃取

4. **定期更换授权码**
   - 建议每3-6个月更换一次
   - 如果怀疑泄露，立即更换

## 示例

### 示例1：发送小说到邮箱

**输入**：
```
把 "长江之谜.md" 发送到 manke_zhy@qq.com
```

**执行过程**：
```
欢迎使用文件邮件发送工具
=====================================
[✓] 找到文件：长江之谜.md (4.2KB)
[?] 发件邮箱类型：
    1. QQ邮箱
    2. 163邮箱
    3. Gmail
请选择 [1-3]: 1
[?] 请输入发件邮箱：your@qq.com
[?] 请输入SMTP授权码：********
[*] 正在连接SMTP服务器...
[*] 正在发送邮件...
[✓] 发送成功！请检查收件箱
```

**输出**：
- 邮件已发送到指定邮箱
- 附件完整无损
- 手机和电脑都可以接收

### 示例2：发送多个文件

**输入**：
```
把桌面的所有 .md 文件发给我
```

**处理**：
- 自动打包多个文件
- 发送到您的邮箱

## 故障排除

### 问题1：认证失败，提示"535 Error"

**原因**：
- 授权码错误
- SMTP服务未开启

**解决方法**：
1. 重新生成邮箱授权码
2. 确认IMAP/SMTP服务已开启
3. 检查发件邮箱地址是否正确
4. 复制授权码时不要包含空格

### 问题2：连接超时

**原因**：
- 网络连接问题
- 防火墙阻止
- SMTP服务器地址错误

**解决方法**：
1. 检查网络连接
2. 尝试切换网络（如使用手机热点）
3. 检查防火墙设置
4. 确认SMTP服务器地址和端口正确

### 问题3：附件太大

**原因**：
- 文件超过邮箱附件大小限制

**解决方法**：
1. 压缩文件后再发送
2. 使用云盘分享（百度网盘、OneDrive等）
3. 分割成多个小文件

### 问题4：收不到邮件

**原因**：
- 邮件被放入垃圾箱
- 收件地址错误
- 邮箱服务延迟

**解决方法**：
1. 检查垃圾邮件文件夹
2. 等待3-5分钟（网络延迟）
3. 确认收件地址拼写正确
4. 查看发件箱是否显示发送成功

### 问题5：中文附件名乱码

**原因**：
- 邮件客户端编码问题

**解决方法**：
- 脚本已使用UTF-8编码
- 使用主流邮箱客户端（QQ邮箱、Foxmail等）
- 如果还是乱码，尝试重命名附件为英文

## 最佳实践

1. **小文件（<10MB）**：直接使用邮件发送
2. **大文件（>10MB）**：先压缩，再发送
3. **超大文件（>50MB）**：使用云盘分享
4. **频繁分享**：建议配置专用发件邮箱
5. **安全考虑**：定期更换授权码

## 高级功能

### 批量发送

```bash
# 发送整个文件夹
python send_email.py folder/ receiver@qq.com --batch

# 发送多个文件
python send_email.py file1.doc file2.pdf receiver@qq.com
```

### 定时发送

```bash
# 延迟发送（需要系统支持）
echo "python send_email.py file.txt receiver@qq.com" | at 10:00
```

### 邮件模板

```bash
# 使用预设模板
python send_email.py file.txt receiver@qq.com --template formal
```

## 技术支持

如遇到问题，可以：
1. 查看"故障排除"部分
2. 检查脚本输出的错误信息
3. 确认邮箱配置正确
4. 尝试重新生成授权码

---

**更新日期**：2026-01-27
**版本**：v1.0

