https://github.com/lonnnnnng/mail
一个简单的Web端发信工具,支持自定义发信人。支持2925邮箱批量发信
https://github.com/lonnnnnng/mail
2925 mail web webmail
Last synced: about 7 hours ago
JSON representation
一个简单的Web端发信工具,支持自定义发信人。支持2925邮箱批量发信
- Host: GitHub
- URL: https://github.com/lonnnnnng/mail
- Owner: lonnnnnng
- Created: 2026-04-22T05:37:00.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2026-04-22T05:37:04.000Z (2 months ago)
- Last Synced: 2026-04-28T12:40:19.735Z (about 2 months ago)
- Topics: 2925, mail, web, webmail
- Language: EJS
- Homepage:
- Size: 488 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 邮箱发送工具
一个功能强大的邮箱发送工具,支持单个和批量发送邮件,实时推送发送状态。
## 功能特性
- ✅ 支持多家邮箱配置(163、QQ、126、阿里云等)
- ✅ 单个和批量邮件发送
- ✅ 批量邮箱地址自动生成(格式:prefix_0001@domain.com)
- ✅ 实时发送状态推送(WebSocket)
- ✅ 可设置发件间隔,避免邮件服务器限制
- ✅ 邮件主题和内容自动添加流水号
- ✅ 配置保存在本地,刷新不丢失
- ✅ 可折叠的配置区域,节省页面空间
- ✅ 实时的发送状态弹框
## 技术栈
- **后端**:Node.js + TypeScript + Express + Nodemailer + WebSocket
- **前端**:HTML5 + CSS3 + JavaScript + EJS
## 安装步骤
### 1. 克隆项目
```bash
git clone
cd mail
```
### 2. 安装依赖
```bash
npm install
```
### 3. 编译项目
```bash
npm run build
```
### 4. 启动服务器
```bash
npm start
```
服务器将运行在 `http://localhost:3000`
## 使用方法
### 1. 配置发件人信息
1. 点击"发件人配置"标题展开配置区域
2. 选择邮箱类型(自动填充SMTP配置)
3. 填写发件人邮箱和密码/授权码
4. 点击"保存配置"按钮

### 2. 发送单个邮件
1. 选择"单个发送"模式
2. 输入收件人邮箱地址
3. 填写邮件主题和内容
4. 点击"发送邮件"按钮
5. 查看实时发送状态

### 3. 批量发送邮件
1. 选择"批量发送"模式
2. 输入基础邮箱地址(如 `user@example.com`)
3. 输入批量数量(如 10)
4. 输入起始序列号(如 1)
5. 输入发件间隔(建议 1000 毫秒以上)
6. 填写邮件主题和内容
7. 点击"预览收件人"查看生成的邮箱列表
8. 点击"发送邮件"按钮
9. 查看实时发送状态

## 注意事项
1. **授权码获取**:部分邮箱(如QQ邮箱)需要使用授权码而不是登录密码
2. **发件间隔**:为避免被邮件服务器视为垃圾邮件,建议设置合理的发件间隔
3. **批量数量**:单次批量发送数量不宜过大,建议控制在 50 封以内
4. **配置安全**:发件人密码/授权码仅保存在本地浏览器,不会上传到服务器
## 项目结构
```
mail/
├── src/ # TypeScript源代码
│ ├── index.ts # Express服务器入口
│ └── emailService.ts # 邮件发送服务
├── views/ # 前端模板
│ └── index.ejs # 主页面
├── dist/ # 编译输出目录
├── package.json # 项目配置
├── tsconfig.json # TypeScript配置
└── ARCHITECTURE.md # 架构文档
```
## 常见问题
### Q: 发送邮件失败,提示"Missing credentials for PLAIN"
A: 请检查发件人配置是否正确,特别是邮箱地址和密码/授权码
### Q: 批量发送时,邮件服务器拒绝连接
A: 请增加发件间隔,避免过于频繁的请求
### Q: 配置保存后刷新页面丢失
A: 请确保浏览器支持localStorage,并且未被禁用
## 贡献
欢迎提交 Issue 和 Pull Request!
## 许可证
MIT