当前位置: 首页 > news >正文

Spring Cloud Alibaba-08-SMS短信服务

Lison <dreamlison@163.com>, v1.0.0, 2024.5.1

Spring Cloud Alibaba-08-SMS短信服务

短信服务介绍

短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力。

产品优势:覆盖全面、高并发处理、消息堆积处理、开发管理简单、智能监控调度
产品功能:短信通知、短信验证码、推广短信、异步通知、数据统计
应用场景:短信验证码、系统信息推送、推广短信等

在这里插入图片描述

短信服务使用

1、入驻阿里云

在这里插入图片描述

2、开通短信服务,按流程创建资质、申请前面,创建模版,系统设置,发送短信

在这里插入图片描述

SMS概念

  • 短信服务(Short Message Service)

    短信服务是广大企业客户快速触达手机用户所优选使用的通信能力。调用API或用群发助手,即可发送验证码、通知类和营销类短信。

  • 短信模版(TemplateId)

    使用短信服务首先都需要创建短信模板提交审核,这样可以防止不法分子通过云服务商提供的短信服务实施短信诈骗。

  • 短信签名(SignName)

    短信末尾会附上签名以识别此条短信是由谁发送,这样可以令用户对短信来源有一个明确的印象。

  • 地域(RegionId)

    地域表示SMS的数据中心所在物理位置。可以根据费用、请求来源等选择合适的地域,一般是阿里云短信配置。

  • 访问密钥(AccessKey)

    AccessKey简称AK,指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。SMS通过使用AccessKey ID和AccessKey Secret对称加密的方法来验证某个请求的发送者身份。AccessKey ID用于标识用户;AccessKey Secret是用户用于加密签名字符串和SMS用来验证签名字符串的密钥,必须保密。关于获取AccessKey的方法

目前BladeX提供的blade-starter-sms集成了四种sms,分别为:云片sms、阿里云sms、七牛sms、腾讯sms

功能测试

引入依赖:

<!--短信发送--><dependency> <groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alicloud-sms</artifactId>
</dependency>
sms:enabled: truename: aliyuntemplate-id: SMS_xxxxsign-name: xxxxxaccess-key: xxxxxxxsecret-key: xxxxxxxregion-id: cn-hangzhou

使用阿里云提供的Demo测试短信发送

public class SmsUtil {//替换成自己申请的accessKeyIdprivate static String accessKeyId = "xxx"; //替换成自己申请的accessKeySecretprivate static String accessKeySecret = "xxxxx";static final String product = "Dysmsapi";static final String domain = "dysmsapi.aliyuncs.com";/*** 发送短信** @param phoneNumbers 要发送短信到哪个手机号* @param signName     短信签名[必须使用前面申请的]* @param templateCode 短信短信模板ID[必须使用前面申请的]* @param param        模板中${code}位置传递的内容*/public static void sendSms(String phoneNumbers, String signName, String templateCode, String param) {try {System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");//初始化acsClient,暂不支持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();request.setPhoneNumbers(phoneNumbers);request.setSignName(signName);request.setTemplateCode(templateCode);request.setTemplateParam(param);request.setOutId("yourOutId");SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);if (!"OK".equals(sendSmsResponse.getCode())) {throw new RuntimeException(sendSmsResponse.getMessage());}} catch (Exception e) {e.printStackTrace();throw new RuntimeException("发送短信失败");}}
}

相关文章:

  • 逐元素比较
  • CSS动画技术(css-animation)
  • 于ThinkPHP开发的赛事报名小程序
  • C语言游戏实战(12):植物大战僵尸(坤版)
  • git常见的18条指令
  • 前端开发工程师——ajax
  • 【贪心算法题目】
  • 简述MyBatis中#{}引用和${}引用的区别
  • 春秋云境CVE-2023-50564
  • 金丝雀发布(灰度发布)介绍 及 声明式管理方法简介
  • 全国智慧海洋与大数据技术应用行业产教融合共同体成立
  • 【IPD进阶】学习IPD流程,从黑话开始
  • Shell编程之条件判断语句
  • 为什么说kafka没办法保证数据不丢?
  • 如何解决爬虫的IP地址受限问题?
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • Bootstrap JS插件Alert源码分析
  • CentOS从零开始部署Nodejs项目
  • Java,console输出实时的转向GUI textbox
  • javascript面向对象之创建对象
  • Java方法详解
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Rancher-k8s加速安装文档
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • vue2.0项目引入element-ui
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 利用DataURL技术在网页上显示图片
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 想使用 MongoDB ,你应该了解这8个方面!
  • Nginx实现动静分离
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • #07【面试问题整理】嵌入式软件工程师
  • (C++17) optional的使用
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Git) gitignore基础使用
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)ssm考生评分系统 毕业设计 071114
  • ****Linux下Mysql的安装和配置
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .Net Redis的秒杀Dome和异步执行
  • .NET 设计一套高性能的弱事件机制
  • .NET4.0并行计算技术基础(1)
  • .net知识和学习方法系列(二十一)CLR-枚举
  • @Conditional注解详解
  • @Mapper作用
  • @PreAuthorize注解
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [ 第一章] JavaScript 简史
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • []我的函数库
  • [17]JAVAEE-HTTP协议
  • [android]-如何在向服务器发送request时附加已保存的cookie数据