Skip to content

邮件连接器

部分实现 -- 基础设施已完成,暂无内置邮件 Provider 实现。连接器的 CRUD 管理和测试功能可正常使用,但需要开发具体的邮件 Provider 后才能实际发送邮件。

概述

邮件连接器用于集成邮件发送服务,使 Code Bird Cloud 能够向用户发送验证码邮件。当用户使用邮箱进行注册、登录或密码重置时,系统会通过已配置的邮件连接器发送包含验证码的邮件。

使用场景

邮件连接器在以下场景中发挥作用:

场景说明
邮箱注册验证用户使用邮箱注册时,系统发送验证码邮件验证邮箱地址的有效性
邮箱验证码登录用户选择 "邮箱 + 验证码" 方式登录时,系统发送一次性验证码
忘记密码用户通过邮箱重置密码时,系统发送验证码邮件验证身份

常见邮件 Provider

以下是可以集成的常见邮件发送服务:

Provider说明
阿里云 DirectMail阿里云邮件推送服务,适合国内用户
SendGridTwilio 旗下的邮件服务,全球化覆盖
AWS SESAmazon 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_idstring阿里云 AccessKey ID
access_key_secretstring阿里云 AccessKey Secret
account_namestring发信地址(需在阿里云 DirectMail 控制台中验证)
regionstring服务区域(如 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

删除正在使用的邮件连接器会导致邮箱验证码功能不可用。请确保在删除前已从登录体验配置中移除对邮箱验证码的依赖。

与登录体验的集成

邮件连接器配置并启用后,需要在登录体验配置中启用对应的登录/注册方式才能生效:

  1. 在管理后台进入 "登录体验" 配置页面
  2. 在登录方式中添加 "邮箱" 标识符,并启用 "验证码登录"
  3. 在注册设置中添加 "邮箱" 标识符,并根据需要启用 "需要验证"
  4. 保存配置

配置完成后,登录页面将展示邮箱验证码登录选项,注册页面将支持邮箱注册和验证。

相关文档

Released under the MIT License.