需要参数
1.短信签名
短信签名是短信服务提供的一种快捷、方便的个性化签名方式。当发送短信时,短信平台会根据设置,在短信内容里附加个性签名,再发送给指定手机号码。
可以根据用户属性来创建符合自身属性的签名,一般建议设置为账号主体所在机构的全称或简称。当发送短信时,短信平台会将已审核通过的个性化短信签名添加到短信内容中,再发送给短信接收方。
短信签名必须经过审核才能在短信中使用,提交审核时:
企业用户和个人用户以本账号名义申请签名时,如果不涉及第三方权益,可以不用提交企业相关执照证明。
个人用户申请事业单位的全称或简称的签名时,必须提交企业相关的执照及授权委托书。
审核失败的签名可以修改后再次提交。
适用场景
提交签名审核时,需要指定签名的适用场景。
验证码:用于网站、APP、小程序或公众号尚未上线的场景,不需要上传任何证明文件。
该场景下可申请验证码类型的短信签名,此签名也只能用于发送验证码短信。网站、APP、小程序或公众号上线后,请及时变更签名为通用类型,以发送多种类型的短信。
通用:用于验证码短信、短信通知、推广短信、国际/港澳台短信等通用场景。
该场景下可以申请任何签名来源的短信签名,如果选择APP应用的全称或简称或公众号或小程序的全称或简称,则网站、APP、小程序或公众号必须已上线。
注意:个人用户不支持发送推广短信和国际/港澳台短信。
签名示例
例如,企业主体为“阿里巴巴网络技术有限公司”,则可以提交的签名如下:
企业全称或简称:【阿里巴巴】、【阿里巴巴网络技术有限公司】。
公司旗下产品名称:【淘宝网】、【阿里云】等。
2.短信模板
短信模版,即具体发送的短信内容。
短信模版可以支持验证码、短信通知、推广短信三种模式。验证码和短信通知,通过变量替换实现个性短信定制。
推广短信不支持在模版中添加变量。
短信模版需要审核通过后才可以使用。不同短信模板的单价不同,详细信息请查看短信服务定价。
模板格式
短信模板由变量和模板内容构成。模板变量以变量形式提供针对不同手机号码的短信定制方式,在模板中设置变量后,发送短信时指定变量的实际值,短信服务会自动用实际值替换模板变量,并发送短信,实现短信的定制化。
推广短信不支持模板变量。
例如:
【阿里云】您正在申请手机注册,验证码为:${code},5分钟内有效!
其中:
模板内容为:您正在申请手机注册,验证码为:${code},5分钟内有效!。
模板变量为:${code}。
模板类型
根据短信接收人的所属地域,短信模板可分为国内短信和国际/港澳台短信两大类。具体分类如下:
国内短信
验证码
短信通知
推广短信
国际/港澳台短信(企业用户)
注意: 个人用户不支持申请国际/港澳台短信模板。
各种短信类型的详细说明请参考国内短信和国际/港澳台短信。
模板示例
验证码短信:
【阿里云】您正在申请手机注册,验证码为:${code},5分钟内有效!
其中:
【阿里云】为短信签名。
您正在申请手机注册,验证码为:${code},5分钟内有效!为短信模板。
${code}为模板变量。
短信通知:
【阿里云】尊敬的${name},您购买的云小蜜实例:${instanceid},已于${duedate}正式到期。如您要继续使用,请于${date}前及时续费或重新购买。
其中:
【阿里云】为短信签名。
尊敬的${name},您购买的云小蜜实例:${instanceid},已于${duedate}正式到期。如您要继续使用,请于${date}前及时续费或重新购买。为短信模板。
${name}、${instanceid}、${duedate}和${date}为模板变量。
推广短信:
亲爱的短信服务用户,近期天气渐凉,请注意防寒保暖,及时添加衣物。短信服务与您同行!
其中:
推广短信不支持变量。
亲爱的短信服务用户,近期天气渐凉,请注意防寒保暖,及时添加衣物。短信服务与您同行!为短信模板。
国际/港澳台短信:
【AlibabaCloud】Dear ${name}, welcome to register our service, your verify code is ${code}.
其中:
【AlibabaCloud】为短信签名。
Dear ${name}, welcome to register our service, your verify code is ${code}.为短信模板。
${name}和${code}为模板变量。
3.accessKeyId
4.accessSecret
AccessKey ID和AccessKey Secret是您访问阿里云API的密钥,具有该账户完全的权限,请您妥善保管。
maven依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
Java运行demo
package me.zhengjie.modules.text;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.Map;
/**
* @author :admin
* @date :Created in 2019/9/23 16:06
* @Time: 16:06
* @description:消息发送
* @modified By:
* @version: 1.0$
*/
public class SendBatchSms {
//常量参数最好配置到配置文件中
public static String accessKeyId = "LTAI4XXXXXXXXXXX";
public static String accessSecret = "rXXXXXXXXXXXXXX";
public static String signName = "杭州XXXXXX";//签名管理里的签名名称
public static String TemplateCode = "SMS_XXXXX";//code
public static boolean send(String PhoneNumbers,String templateCode,String templateParam) {
DefaultProfile profile = DefaultProfile.getProfile("default", accessKeyId, accessSecret);
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("PhoneNumbers", PhoneNumbers);
request.putQueryParameter("SignName", signName);
request.putQueryParameter("TemplateCode", templateCode);
request.putQueryParameter("TemplateParam", templateParam);
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
Gson GSON = new Gson();
Map<String,String> map = GSON.fromJson(response.getData(),new TypeToken<Map<String,String>>() {
}.getType());
if(map.get("Code").equals("OK")){
return true;
}
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
return false;
}
/**
* 5999后勤舆情短信回复
* @param PhoneNumbers 手机号
* @param name 回复人姓名
* @param details 回复内容
* @return
*/
public static boolean details(String PhoneNumbers,String name,String details){
//String PhoneNumbers = "177xxxx0001";//多个用逗号分割13776670000,13776670000
String templateCode = TemplateCode;//短信模板code
String templateParam = "{\"name\":\""+ name +"\",\"details\":\""+ details +"\"}";
boolean sendStatus = SendBatchSms.send(PhoneNumbers,templateCode,templateParam);
return sendStatus;
}
public static void main(String[] args) {
String PhoneNumbers = "177xxxx0001";//多个用逗号分割13776670000,13776670000
String templateCode = TemplateCode;//短信模板code
String templateParam = "{\"name\":\"XXX\",\"details\":\"解决\"}";
boolean sendStatus = SendBatchSms.send(PhoneNumbers,templateCode,templateParam);
if(sendStatus){
System.out.println("短信发送成功");
}
}
}