阿里云短信服务 - 消息发送

匿名 (未验证) 提交于 2019-12-03 00:11:01

需要参数

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("短信发送成功");         }     } }

控制台

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!