跳到主要内容

阿里云短信

阿里云短信是基于阿里云SMS API的企业级短信通知服务,通过标准的sendMessage接口实现验证码发送、通知提醒等短信业务场景。它集成阿里云SMS API,支持AccessKey认证和签名验证机制,提供完整的错误处理和日志监控,确保消息发送的可靠性。

阿里云短信元素分层结构为Meta(SMS.Meta) → Type(SMS.Aliyun) → 实例,开发者可通过JitAi的可视化开发工具快捷地创建阿里云短信实例元素。

当然,开发者也可以创建自己的Type元素,或者在自己的App中改写JitAi官方提供的SMS.Aliyun元素,以实现自己的封装。

快速开始

创建实例元素

目录结构

推荐目录结构
SMS/
└── YourSmsName/ # 自定义短信实例名称
├── e.json # 元素声明文件
└── sms.json # 阿里云短信配置文件

e.json文件

元素声明文件
{
"title": "我的阿里云短信",
"type": "SMS.Aliyun",
"backendBundleEntry": "."
}

业务配置文件

sms.json配置文件
{
"accessKey": "your_access_key",
"accessSecret": "your_access_secret",
"verifySign": "your_signature"
}

调用示例

发送短信示例
# 获取短信元素实例
sms_element = app.getElement("SMS.YourSmsName")

# 发送短信
result = sms_element.sendMessage(
phoneList=["13800138000", "13900139000"],
params={"code": "123456"},
verifyTemplateCode="SMS_123456789"
)

元素配置

e.json配置

配置项类型必填说明
titlestring元素显示名称
typestring固定值"SMS.Aliyun"
backendBundleEntrystring固定值"."

业务配置文件配置

配置项类型必填说明
accessKeystring阿里云AccessKey
accessSecretstring阿里云AccessSecret
verifySignstring短信签名,需在阿里云控制台申请

方法

sendMessage

发送短信接口,通过传入手机号列表、模板参数和模板代码发送短信消息。

参数详解

参数名类型对应原生类型必填说明
phoneListJitListlist手机号列表,每个手机号为字符串格式
paramsJitDictdict短信模板参数,键值对格式
verifyTemplateCodeStextstr阿里云短信模板代码,需在extend参数中传入

返回值

返回阿里云SMS API的响应结果对象,包含发送状态和相关信息。

使用示例

基础发送示例
# 发送验证码短信
result = sms_element.sendMessage(
phoneList=["13800138000"],
params={"code": "6789"},
verifyTemplateCode="SMS_123456789"
)
批量发送示例
# 批量发送通知短信
result = sms_element.sendMessage(
phoneList=["13800138000", "13900139000", "13700137000"],
params={"name": "张三", "event": "系统维护"},
verifyTemplateCode="SMS_987654321"
)
多参数模板示例
# 复杂模板参数
result = sms_element.sendMessage(
phoneList=["13800138000"],
params={
"username": "用户001",
"amount": "100.00",
"time": "2024-01-15 10:30"
},
verifyTemplateCode="SMS_ORDER_NOTIFY"
)

属性

暂无

高级特性

错误处理

阿里云短信元素提供完整的错误处理机制,包含以下预定义错误码:

错误处理示例
try:
result = sms_element.sendMessage(
phoneList=["13800138000"],
params={"code": "1234"},
verifyTemplateCode="SMS_123456789"
)
except Exception as e:
# 错误码:46001 - 参数缺失或手机号列表为空
# 错误码:46002 - 发送短信失败,阿里云API返回错误
# 错误码:46003 - 短信发送请求失败
log.error(f"短信发送失败: {e}")

模板管理

在使用前需要在阿里云短信服务控制台创建短信模板和签名:

模板配置说明
# 1. 在阿里云控制台创建短信签名,获取verifySign
# 2. 创建短信模板,获取模板代码
# 3. 模板示例:
# 验证码模板:验证码${code},5分钟内有效。
# 通知模板:亲爱的${name},${event}将于${time}进行。

# 使用时传入对应的模板代码和参数
result = sms_element.sendMessage(
phoneList=["13800138000"],
params={"code": "123456"}, # 对应模板中的${code}
verifyTemplateCode="SMS_123456789" # 阿里云分配的模板代码
)