1 短信发送

1.1 注册阿里云

1.2 查找短信服务:创建签名

1.3 创建模板


1.4 获取accessKey和accesssKeySecret

1.5 项目中引入依赖

<!--短信发送的依赖-->
<!--阿里短信-->
<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-dysmsapi -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version>
</dependency>

1.6 发送短信的代码

package com.zhiyou100.demo02;import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;public class TestMessage01 {private static String accessKeyId, accessKeySecret, signName, templateCode;static {accessKeyId = "LTAI5tHxxxxx";accessKeySecret = "2IofAIExxxxx";signName = "跟着宝哥学java";templateCode = "SMS_167050317";//您的注册码:${code},如非本人操作,请忽略本短信!}public static void main(String[] args) throws Exception {sendMessage((int)(Math.random()*1000000)+"", "150360xxxx");}public static void sendMessage(String codeValue, String phoneNumber) {// 设置超时时间-可自行调整System.setProperty("sun.net.client.defaultConnectTimeout", "20000");System.setProperty("sun.net.client.defaultReadTimeout", "20000");// 初始化ascClient需要的几个参数final String product = "Dysmsapi";// 短信API产品名称(短信产品名固定,无需修改)final String domain = "dysmsapi.aliyuncs.com";// 短信API产品域名(接口地址固定,无需修改)// 初始化ascClient,暂时不支持多region(请勿修改)IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);try {DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient = new DefaultAcsClient(profile);// 组装请求对象SendSmsRequest request = new SendSmsRequest();// 使用post提交request.setMethod(MethodType.POST);// 必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式;发送国际/港澳台消息时,接收号码格式为国际区号+号码,如“85200000000”request.setPhoneNumbers(phoneNumber);// 必填:短信签名-可在短信控制台中找到request.setSignName(signName);// 必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版request.setTemplateCode(templateCode);// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为// 友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败request.setTemplateParam("{\"code\":\"" + codeValue + "\"}");// 可选-上行短信扩展码(扩展码字段控制在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("发送成功!");} else {throw new RuntimeException("验证码发送失败!");}} catch (Exception e) {throw new RuntimeException("验证码发送失败!");}}
}

1.7 注意

2018年后 不允许个人申请签名

阿里短信发送(跟着宝哥学java)相关推荐

  1. jdbc(跟着宝哥学java:jdbc) jdbc概念,铁打步骤,jdbc封装,预编译对象,sql攻击

    1 概念 jdbc:java database connection 通过java连接数据库 sun公司为java连接所有数据库提供的一组接口; jdbc驱动:各个数据库厂家为自己的数据库根据jdbc ...

  2. 试图view、oracle的试图:oracle09(跟着宝哥学java:oracle系列:全网最全):试图view、oracle的试图

    /*试图:一种数据库对象:用于记录dql的结果集视图(view):是根据用户需求定义的数据结构,是从一个或多个表导出的虚拟的表,其内容由查询定义.具有普通表的结构,但是不实现数据存储.视图本身并不包含 ...

  3. 01_html(跟着宝哥学java:ee)html概念 常用标签 html练习

    1 概念 html: hyper text markup language 超文本标记语言 描述性语言:描述数据 语法:标签:标签格式:<标签名 属性名=属性值 属性名=属性值 >数据&l ...

  4. day18_补充01(跟着宝哥学java:se) ++混合运算、内部类、设计模式、枚举、1.8新特性、正则表达式、

    1 自增自减混合运算 System.out.println(1+2+3/2+3+1*4+5);//从左到右 运算符有优先级int a,b; a=1; a++;//a=(int)(a+1); Syste ...

  5. pl/sql:oracle13(跟着宝哥学java:oracle系列:全网最全):pl/sql语法、pl/sql流程控制

    /* PL/SQL过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的数据库编程语言PL提供流程控制的语句SQL提供访问数据库的语句PL/SQL是对sql的扩展 使其 ...

  6. bootstrap学习(七):跟着宝哥学java:bootstrap表格显示图片

    3.9 显示图片 sql ALTER TABLE student ADD sphoto VARCHAR(100); UPDATE student SET sphoto=CONCAT(MOD(sid,5 ...

  7. 驾校科目一总结(跟着宝哥学java题外总结:::)

    1 申领驾驶证罚款 1:隐瞒情况 提供虚假资料申领驾驶证的:不予处理 罚款500 一年内不能再次申请: 2:考试作弊 贿赂:取消考试资格 已过无效 罚款2000 一年内不能再次申请: 3:以欺骗 贿赂 ...

  8. [JAVA]阿里短信发送(测试)

    阿里短信发送 1.进入阿里云官网 https://www.aliyun.com/?utm_content=se_1008364713 2.登录后点击控制台 3.搜索短信服务 4.选中快速学习,绑定测试 ...

  9. thinkphp5+阿里短信发送验证码

    一.申请阿里短信接口,开通服务,申请AccessKey ID和Access Key Secret 二.申请短信发送模板 三.在thinkphp5中的config文件中添加一下配置 //短信配置'SMS ...

最新文章

  1. mysql优化sql相关(持续补充)
  2. WKWebView中经常用到的操作
  3. ASP导出数据到excel
  4. grasshopper for rhino 6下载_从SU到Rhino——lumion批量种树
  5. mysql to char 用法_postgresql 中的to_char()常用操作
  6. 容器编排技术 -- Windows Server 容器
  7. (转)Hibernate框架基础——映射主键属性
  8. mysql 进入数据库名_操作mysql数据库的一些命名
  9. asteroids模板 游戏 java_在高级Java游戏中存储全局/静态变量的最佳方法是什么?...
  10. java 数据库 模板_JAVA操作数据库的模板方法
  11. Androd UI学习之ImageSwitcher
  12. 最普通IT男-苦逼coder杂谈
  13. TCP报文段首部格式
  14. 第六章第三十一题(金融应用:信用卡号的合法性验证)(Financial: credit card number validation)
  15. 计算机五笔是什么时候学的吗,现在还有人学五笔么
  16. 20常见的手机问题及其解决方案
  17. 公链、私链、联盟链优缺点
  18. 有关H5的第一章介绍
  19. JavaFx+Mysql 实现学籍管理系统
  20. 计算机词汇app有哪些,APP推荐 | 有哪些APP独得学霸恩宠?

热门文章

  1. php 翻牌,PHP+jQuery翻牌抽奖
  2. 让ChatGPT成为全科医生的智能助理
  3. 摩客怎么设置安卓的dp_安卓的显示单位dp、dip、px、sp
  4. MEC@JavaSE@进阶篇@笔记09@XML文件以及Properties文件解析初步
  5. c语言scanf函数作用,C语言scanf函数应用问题解答
  6. 什么样的经历,才能领悟成为架构师?
  7. 课程设计————学生信息管理系统(包含历代思路和代码)
  8. 从零开始学区块链之dapp开发(2)测试环境搭建
  9. 厦门大学考研真题笔记:334新闻与传播专业综合能力
  10. Flutter问题一:键盘遮挡输入框