邮件连接器
部分实现 -- 基础设施已完成,暂无内置邮件 Provider 实现。连接器的 CRUD 管理和测试功能可正常使用,但需要开发具体的邮件 Provider 后才能实际发送邮件。
概述
邮件连接器用于集成邮件发送服务,使 Code Bird Cloud 能够向用户发送验证码邮件。当用户使用邮箱进行注册、登录或密码重置时,系统会通过已配置的邮件连接器发送包含验证码的邮件。
使用场景
邮件连接器在以下场景中发挥作用:
| 场景 | 说明 |
|---|---|
| 邮箱注册验证 | 用户使用邮箱注册时,系统发送验证码邮件验证邮箱地址的有效性 |
| 邮箱验证码登录 | 用户选择 "邮箱 + 验证码" 方式登录时,系统发送一次性验证码 |
| 忘记密码 | 用户通过邮箱重置密码时,系统发送验证码邮件验证身份 |
常见邮件 Provider
以下是可以集成的常见邮件发送服务:
| Provider | 说明 |
|---|---|
| 阿里云 DirectMail | 阿里云邮件推送服务,适合国内用户 |
| SendGrid | Twilio 旗下的邮件服务,全球化覆盖 |
| AWS SES | Amazon Simple Email Service,适合 AWS 生态用户 |
| SMTP | 通用 SMTP 协议,兼容各种邮件服务器 |
| 腾讯云邮件 | 腾讯云邮件推送服务 |
配置示例
以下是创建邮件连接器的配置示例(以阿里云 DirectMail 为例):
json
{
"connector_id": "aliyun-direct-mail",
"type": "Email",
"config": {
"access_key_id": "your_access_key_id",
"access_key_secret": "your_access_key_secret",
"account_name": "noreply@example.com",
"region": "cn-hangzhou"
},
"enabled": true
}配置字段说明
不同的邮件 Provider 所需的配置字段不同,以下以阿里云 DirectMail 为例:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
access_key_id | string | 是 | 阿里云 AccessKey ID |
access_key_secret | string | 是 | 阿里云 AccessKey Secret |
account_name | string | 是 | 发信地址(需在阿里云 DirectMail 控制台中验证) |
region | string | 是 | 服务区域(如 cn-hangzhou) |
API 参考
创建邮件连接器
POST /api/v1/connectors
Content-Type: application/json
{
"connector_id": "aliyun-direct-mail",
"type": "Email",
"config": {
"access_key_id": "LTAI5tExample",
"access_key_secret": "your-secret-key",
"account_name": "noreply@example.com",
"region": "cn-hangzhou"
},
"enabled": true
}更新邮件连接器
PATCH /api/v1/connectors/:id
Content-Type: application/json
{
"config": {
"access_key_id": "new_access_key_id",
"access_key_secret": "new_access_key_secret",
"account_name": "noreply@example.com",
"region": "cn-hangzhou"
}
}测试邮件连接器
配置完成后,建议通过测试端点验证配置是否正确。系统会尝试发送一封测试邮件。
POST /api/v1/connectors/:id/test删除邮件连接器
DELETE /api/v1/connectors/:id删除正在使用的邮件连接器会导致邮箱验证码功能不可用。请确保在删除前已从登录体验配置中移除对邮箱验证码的依赖。
与登录体验的集成
邮件连接器配置并启用后,需要在登录体验配置中启用对应的登录/注册方式才能生效:
- 在管理后台进入 "登录体验" 配置页面
- 在登录方式中添加 "邮箱" 标识符,并启用 "验证码登录"
- 在注册设置中添加 "邮箱" 标识符,并根据需要启用 "需要验证"
- 保存配置
配置完成后,登录页面将展示邮箱验证码登录选项,注册页面将支持邮箱注册和验证。
