1 设置短信签名

登陆阿里云。登录后进入 短信服务 管理页面,选择国内消息菜单 新建签名  (如果非企业用户,适用场景请选择验证码) (签名名称后面会用到)

 

<>2.设置模板,主要定义以后发送短信的样式(模板code后面需要用到)

<>3.设置access keys

点击右上角个人头像

 选择子用户

新建用户(它会给你一个ak  密钥  一定要保存下来 ,只出现这一次)

给它添加sms权限

<>4.首先导入阿里云maven坐标
<dependency> <groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId> <version>3.3.1</version>
</dependency> <dependency> <groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId> <version>1.0.0</version>
</dependency>
<>5.官方api  ***号代表的是需要自己对应的配置
public class SMSUtils { public static final String VALIDATE_CODE =
"**********";//模板code public static final String ORDER_NOTICE =
"**********";//模板code /** * 发送短信 * @param phoneNumbers * @param param * @throws
ClientException */ public static void sendShortMessage(String
templateCode,String phoneNumbers,String param) throws ClientException{ //
设置超时时间-可自行调整 System.setProperty("sun.net.client.defaultConnectTimeout",
"10000"); System.setProperty("sun.net.client.defaultReadTimeout", "10000"); //
初始化ascClient需要的几个参数 final String product = "Dysmsapi";//
短信API产品名称(短信产品名固定,无需修改) final String domain = "dysmsapi.aliyuncs.com";//
短信API产品域名(接口地址固定,无需修改) // 替换成你的AK final String accessKeyId =
"******************";// 你的accessKeyId,参考本文档步骤2 final String accessKeySecret =
"******************";// 你的accessKeySecret,参考本文档步骤2 //
初始化ascClient,暂时不支持多region(请勿修改) IClientProfile profile =
DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile); // 组装请求对象 SendSmsRequest
request = new SendSmsRequest(); // 使用post提交 request.setMethod(MethodType.POST);
//
必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
request.setPhoneNumbers(phoneNumbers); // 必填:短信签名-可在短信控制台中找到 ***********
request.setSignName("***************"); // 必填:短信模板-可在短信控制台中找到
request.setTemplateCode(templateCode); //
可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 //
友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
request.setTemplateParam("{\"code\":\""+param+"\"}"); //
可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段) // request.setSmsUpExtendCode("90997");
// 可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 // request.setOutId("yourOutId"); //
请求失败这里会抛ClientException异常 SendSmsResponse sendSmsResponse =
acsClient.getAcsResponse(request); if (sendSmsResponse.getCode() != null &&
sendSmsResponse.getCode().equals("OK")) { // 请求成功 System.out.println("请求成功"); }
} public static void main(String[] args) { try {
sendShortMessage(VALIDATE_CODE,"********","test"); //第二个参数为手机号 ,第三个为发送内容 }
catch (ClientException e) { e.printStackTrace(); } } }
 

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信