需要参数
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("短信发送成功"); } } }
控制台
来源:51CTO
作者:壹阵上古风
链接:https://blog.csdn.net/tangcv/article/details/101214802