feat: add send many account mode

This commit is contained in:
engigu
2025-12-14 12:43:09 +08:00
parent 2125ddc853
commit 5e20533aa9
26 changed files with 1547 additions and 793 deletions
+54 -2
View File
@@ -53,14 +53,30 @@
#### 邮件渠道
- **收件人邮箱** - 接收邮件的邮箱地址
- **消息格式** - Text 或 HTML
- **固定模式**
- 收件人邮箱 - 接收邮件的邮箱地址
- 消息格式 - Text 或 HTML
- **动态接收者模式(群发)** 🆕:
- 勾选"动态接收者模式"
- 无需配置固定收件人
- 发送时通过 API 的 `recipients` 参数指定多个收件人
- 适用于邮件群发场景
#### 钉钉/企业微信
- **消息格式** - Text 或 Markdown
- **@提醒** - 可选配置@手机号或@所有人
#### 微信公众号
- **固定模式**
- 用户 OpenID - 接收消息的用户标识
- **动态接收者模式(群发)** 🆕:
- 勾选"动态接收者模式"
- 无需配置固定 OpenID
- 发送时通过 API 的 `recipients` 参数指定多个 OpenID
- 适用于公众号群发场景
#### 自定义 Webhook
- 根据 Webhook 要求配置相应参数
@@ -70,6 +86,13 @@
- 无需额外配置
- **消息格式** - Text、HTML 或 Markdown
::: warning 动态接收者模式限制
1. 一个任务只能配置一个动态接收实例
2. 动态接收实例不能与固定接收实例混合使用
3. 如果配置了动态接收实例,API 调用时 `recipients` 参数为必填
4. 建议控制接收者数量,避免触发渠道限流
:::
## 管理任务
### 查看任务列表
@@ -190,6 +213,35 @@ curl -X POST http://your-domain/api/v1/message/send \
}
```
### 动态接收者功能(群发)🆕
对于支持的渠道(邮件、微信公众号),可以使用动态接收者实现群发:
```json
{
"token": "your_task_token",
"title": "系统维护通知",
"text": "系统将于今晚22:00进行维护",
"html": "<h2>系统维护通知</h2><p>系统将于今晚<strong>22:00</strong>进行维护</p>",
"recipients": [
"user1@example.com",
"user2@example.com",
"user3@example.com"
]
}
```
**使用场景:**
- 邮件群发通知
- 微信公众号批量推送
- 营销活动通知
- 系统公告发布
**注意事项:**
- 任务必须配置为动态接收者模式
- 一个任务只能有一个动态接收实例
- 建议控制接收者数量,避免触发限流
## 工作流程
```mermaid
+43 -2
View File
@@ -169,15 +169,36 @@ Markdown 格式,适用于钉钉、企业微信等支持 Markdown 的渠道:
不同渠道需要配置不同的参数:
**邮件渠道:**
- 收件人邮箱地址
- 消息格式:Text 或 HTML
- **固定模式**
- 收件人邮箱地址
- 消息格式:Text 或 HTML
- **动态接收者模式(群发)** 🆕:
- 勾选"动态接收者模式"
- 无需配置固定收件人
- 发送时通过 API 的 `recipients` 参数指定多个收件人
- 适用于邮件群发场景
**钉钉/企业微信:**
- 消息格式:Text 或 Markdown
**微信公众号:**
- **固定模式**
- 用户 OpenID
- **动态接收者模式(群发)** 🆕:
- 勾选"动态接收者模式"
- 无需配置固定 OpenID
- 发送时通过 API 的 `recipients` 参数指定多个 OpenID
**自定义 Webhook**
- 根据 Webhook 要求配置
::: warning 动态接收者模式限制
1. 一个模板只能配置一个动态接收实例
2. 动态接收实例不能与固定接收实例混合使用
3. 如果配置了动态接收实例,API 调用时 `recipients` 参数为必填
4. 建议控制接收者数量,避免触发渠道限流
:::
### 3. 管理实例
- **启用/禁用** - 控制实例是否参与发送
@@ -220,6 +241,26 @@ curl -X POST http://your-domain/api/v2/message/send \
}'
```
**动态接收者示例(群发)** 🆕:
```bash
curl -X POST http://your-domain/api/v2/message/send \
-H "Content-Type: application/json" \
-d '{
"token": "encrypted_template_token",
"title": "活动通知",
"placeholders": {
"activity_name": "双十二大促",
"discount": "全场8折"
},
"recipients": [
"user1@example.com",
"user2@example.com",
"user3@example.com"
]
}'
```
## 最佳实践
### 1. 占位符命名