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

需要参数

1.短信签名

短信签名是短信服务提供的一种快捷、方便的个性化签名方式。当发送短信时,短信平台会根据设置,在短信内容里附加个性签名,再发送给指定手机号码。

可以根据用户属性来创建符合自身属性的签名,一般建议设置为账号主体所在机构的全称或简称。当发送短信时,短信平台会将已审核通过的个性化短信签名添加到短信内容中,再发送给短信接收方。

短信签名必须经过审核才能在短信中使用,提交审核时:

企业用户和个人用户以本账号名义申请签名时,如果不涉及第三方权益,可以不用提交企业相关执照证明。

个人用户申请事业单位的全称或简称的签名时,必须提交企业相关的执照及授权委托书。

审核失败的签名可以修改后再次提交。

适用场景
提交签名审核时,需要指定签名的适用场景。

验证码:用于网站、APP、小程序或公众号尚未上线的场景,不需要上传任何证明文件。

该场景下可申请验证码类型的短信签名,此签名也只能用于发送验证码短信。网站、APP、小程序或公众号上线后,请及时变更签名为通用类型,以发送多种类型的短信。

通用:用于验证码短信、短信通知、推广短信、国际/港澳台短信等通用场景。

扫描二维码关注公众号,回复: 10431759 查看本文章

该场景下可以申请任何签名来源的短信签名,如果选择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("短信发送成功");
        }
    }
}

控制台

发布了53 篇原创文章 · 获赞 768 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/tangcv/article/details/101214802