一、模板变量配置原理
阿里云短信模板变量通过占位符实现动态内容替换,每个变量需在模板审核阶段声明。例如验证码模板可定义为:”您的验证码为${code},有效期5分钟”,其中${code}即为变量占位符。
批量发送时需为每个接收者单独指定变量值,系统自动完成内容替换。变量命名需遵循驼峰式规则,且需与模板中定义的占位符完全匹配。
二、创建带变量的短信模板
- 登录阿里云控制台,进入短信服务 > 模板管理
- 点击添加模板,选择模板类型(验证码/通知/营销)
- 在模板内容中使用${variable}格式声明变量,如:
"尊敬的${name},您的订单${orderNo}已发货"
- 提交审核,等待1-2个工作日的审核周期
三、批量发送变量数据格式
使用SendBatchSms接口时,需构造包含多个接收者信息的JSON数组。每个接收者对象包含:
PhoneNumbers": "13800001111", SignName": "阿里云", TemplateParam": {"name":"张三","orderNo":"20250309_001"} }
注意:TemplateParam中的键值必须与模板变量名完全匹配,且值类型需符合模板要求。
四、Java代码实现示例
通过阿里云SDK构造批量请求对象:
List details = new ArrayList; details.add(new SmsUpExtendCodeDetail .setPhoneNumber("13800001111") .setTemplateParam("{\"name\":\"李四\"}")); SendBatchSmsRequest request = new SendBatchSmsRequest .setTemplateCode("SMS_10001") .setSignNameJson(JSON.toJSONString(signNames)) .setTemplateParamJson(JSON.toJSONString(templateParams));
需确保使用com.aliyun:aliyun-java-sdk-core和aliyun-java-sdk-dysmsapi依赖包。
实现阿里云短信批量变量发送需遵循模板声明、数据格式、接口调用三要素。建议通过阿里云控制台的调试功能验证模板变量匹配性,并注意单个请求最多支持1000个接收号码的限制。