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
+51 -8
View File
@@ -51,6 +51,33 @@ POST /api/v1/message/send
@提醒功能仅在支持的渠道(钉钉、企业微信)中生效。
:::
### 动态接收者参数(可选)🆕
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| recipients | array | 否 | 动态接收者列表,如 `["user1@example.com", "user2@example.com"]` |
::: tip 群发模式
动态接收者功能允许在 API 调用时指定接收者列表,实现群发功能。
**支持的渠道:**
-**邮件** - 支持多个收件人,实现邮件群发
-**微信公众号** - 支持多个 OpenID,实现公众号群发
**使用条件:**
1. 任务实例必须配置为"动态接收者模式"
2. 一个任务只能配置一个动态接收实例
3. 动态接收实例不能与固定接收实例混合使用
**配置方式:**
在任务编辑页面,添加实例时勾选"动态接收者模式",此时无需配置固定接收者。
**注意事项:**
- 如果任务配置了动态接收实例,`recipients` 参数为必填
- 不支持动态接收的渠道会忽略此参数
- 建议控制接收者数量,避免触发渠道限流
:::
## 请求示例
### 基本示例(纯文本)
@@ -88,6 +115,22 @@ POST /api/v1/message/send
}
```
### 动态接收者示例(群发)🆕
```json
{
"token": "a3541c2f0d3e1b4a5c6d7e8f9a0b1c2d3e",
"title": "系统维护通知",
"text": "系统将于今晚22:00进行维护,预计持续2小时。",
"html": "<h2>系统维护通知</h2><p>系统将于今晚<strong>22:00</strong>进行维护,预计持续<strong>2小时</strong>。</p>",
"recipients": [
"user1@example.com",
"user2@example.com",
"user3@example.com"
]
}
```
### cURL 示例
```bash
@@ -258,14 +301,14 @@ V1 API 支持三种消息格式,系统会根据任务实例配置的格式类
## 支持的推送渠道
| 渠道 | 支持格式 | @提醒 | 说明 |
|------|---------|------|------|
| **邮件** | Text, HTML | ❌ | SMTP邮件发送,推荐使用 HTML 格式 |
| **钉钉** | Text, Markdown | ✅ | 钉钉机器人,支持 Markdown 富文本 |
| **企业微信** | Text, Markdown | ✅ | 企业微信机器人,支持 Markdown |
| **微信公众号** | Text | ❌ | 微信测试公众号模板消息 |
| **自定义Webhook** | Text, HTML, Markdown | ❌ | 自定义HTTP请求,格式取决于配置 |
| **自托管消息** | Text, HTML, Markdown | ❌ | 站内消息,支持多种格式 |
| 渠道 | 支持格式 | @提醒 | 动态接收者 | 说明 |
|------|---------|------|-----------|------|
| **邮件** | Text, HTML | ❌ | ✅ | SMTP邮件发送,支持群发多个收件人 |
| **钉钉** | Text, Markdown | ✅ | ❌ | 钉钉机器人,支持 Markdown 富文本 |
| **企业微信** | Text, Markdown | ✅ | ❌ | 企业微信机器人,支持 Markdown |
| **微信公众号** | Text | ❌ | ✅ | 微信测试公众号,支持多个 OpenID 群发 |
| **自定义Webhook** | Text, HTML, Markdown | ❌ | ❌ | 自定义HTTP请求,格式取决于配置 |
| **自托管消息** | Text, HTML, Markdown | ❌ | ❌ | 站内消息,支持多种格式 |
## 使用流程
+46
View File
@@ -38,6 +38,7 @@ POST /api/v2/message/send
| token | string | 是 | 加密的模板 Token |
| title | string | 是 | 消息标题 |
| placeholders | object | 否 | 占位符键值对 |
| recipients | array | 条件必填 | 动态接收者列表(群发模式)🆕 |
### 参数说明
@@ -59,6 +60,19 @@ POST /api/v2/message/send
- 如果模板中定义了占位符但未传递,将使用默认值
- 如果既未传递也无默认值,占位符将保持原样
#### recipients 🆕
- 动态接收者列表,用于群发场景
- 格式为字符串数组:`["user1@example.com", "user2@example.com"]`
- **条件必填**:如果模板配置了动态接收实例,此参数为必填
- **支持的渠道**
- ✅ 邮件 - 多个收件人邮箱地址
- ✅ 微信公众号 - 多个用户 OpenID
- **使用限制**
- 一个模板只能配置一个动态接收实例
- 动态接收实例不能与固定接收实例混合使用
- 建议控制接收者数量,避免触发渠道限流
## 请求示例
### 基本示例
@@ -165,6 +179,38 @@ axios.post(url, data)
});
```
### 动态接收者示例(群发)🆕
```javascript
const axios = require('axios');
const url = 'http://your-domain/api/v2/message/send';
const data = {
token: 'a3541c2f0d3e1b4a5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b',
title: '活动通知',
placeholders: {
activity_name: '双十二大促',
start_time: '2024-12-12 00:00:00',
discount: '全场8折'
},
recipients: [
'user1@example.com',
'user2@example.com',
'user3@example.com'
]
};
axios.post(url, data)
.then(response => {
console.log(response.data);
console.log(`成功发送给 ${response.data.data.count} 个接收者`);
})
.catch(error => {
console.error('Error:', error);
});
```
### Java 示例
```java