An open API service indexing awesome lists of open source software.

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邮箱批量发信

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. 点击"保存配置"按钮

![发件配置](imgs/发件配置.png)

### 2. 发送单个邮件

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

![单个发送](imgs/单个发送.png)

### 3. 批量发送邮件

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

![批量发送](imgs/批量发送.png)

## 注意事项

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