在日常的开发过程中,短信的发送经常使用(尤其是中小型的外包公司),毕竟不是每个公司都有阿里腾讯一样的实力, 也不是每个都像银行联通等公司一样有内部的短信规程。第三方的短信往往是最常见的解决方案,但是市面上第三方短信服务商众多, 各家都有不同的方式和标准,每次需要使用时候,都需要花费时间去阅读文档和编写相应的工具,为一个短信浪费了太多的精力和时间。 这个工具的目的就是为了统一下各个厂商的短信发送工具的标准,甚至于更换短信厂商只需要更改yml配置文件即可。
maven引入
<dependency> <groupId>kim.wind</groupId> <artifactId>sms-aggregation-spring-boot-starter</artifactId> <version> version </version> </dependency>
设置配置文件
sms: # 短信服务商 supplier: alibaba # 是否开启短信发送限制 默认false restricted: true # 以下设置仅在开启短信发送限制后生效 # 是否使用redis进行缓存 默认false redisCache: true # 单账号每日最大发送量 accountMax: 20 # 单账号每分钟最大发送 minuteMax: 2
阿里云配置示意
sms: # 短信服务商 supplier: alibaba alibaba: #阿里云的accessKey accessKeyId: 您的accessKey #阿里云的accessKeySecret accessKeySecret: 您的accessKeySecret #短信签名 signature: 测试签名 #模板ID 用于发送固定模板短信使用 templateId: SMS_215125134 #模板变量 上述模板的变量 templateName: code #请求地址 默认为dysmsapi.aliyuncs.com 如无特殊改变可以不用设置 requestUrl: dysmsapi.aliyuncs.com
方法使用
public class Demo{ //此处作为演示使用,推荐使用构造注入或set注入 @Autowired private final SmsBlend sms; public void test() { //发送固定模板短信 SmsResponse smsResponse = sms.sendMessage("18888888888","测试固定模板短信"); System.out.println(smsResponse); } }
每一家厂商都对于异步短信有不同的支持,有些甚至没有,为了统一存在一个异步短信,我们配置了一个线程池用于执行异步短信任务,线程池默认配置如下:
sms: #核心线程池大小 corePoolSize: 10 #最大线程数 maxPoolSize: 30 #队列容量 queueCapacity: 50 #活跃时间 keepAliveSeconds: 60 # 线程名字前缀 threadNamePrefix: sms-executor- #设置线程池关闭的时候等待所有任务都完成再继续销毁其他的Bean shutdownStrategy: true
项目中需要做一个短信引擎,将信息验证码推送到短信平台,然后使用第三方短信平台发短信的功能,这是网上找到一个简单的实例,从中了解一二: 本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信,3条免费彩信,这足够用于我们测试用了。在使用前需要注册,注册地址为http://sms.webchinese.cn/reg.shtml),下面是程序源码: /** * @Da
sms-aggregation 自开源以来受到的众多的反馈,其中很多人在吐槽名字又丑又长不容易记,经过社区内投票之后,成功更定新名称 sms4j,新名称将伴随新的包名,groupId,新的特性,新的文档,在周六进行发布,这次的更新是跨越性的更新,也是全新的起航,在后续将会新版本的迭代计划和维护计划,在作者的有生之年,这个项目将长久的维护下去。 如果我们的项目对你产生了帮助或者你觉得还不错,请为我们
本文向大家介绍Django Aggregation聚合使用方法解析,包括了Django Aggregation聚合使用方法解析的使用技巧和注意事项,需要的朋友参考一下 在当今根据需求而不断调整而成的应用程序中,通常不仅需要能依常规的字段,如字母顺序或创建日期,来对项目进行排序,还需要按其他某种动态数据对项目进行排序。Djngo聚合就能满足这些要求。 以下面的Model为例 快速了解 聚合生成Gen
org.hibernate.criterion.Projections 是 Projection 的实例工厂。我们通过调用 setProjection() 应用投影到一个查询。 List results = session.createCriteria(Cat.class) .setProjection( Projections.rowCount() ) .add( Restric
本文向大家介绍python3.7实现云之讯、聚合短信平台的短信发送功能,包括了python3.7实现云之讯、聚合短信平台的短信发送功能的使用技巧和注意事项,需要的朋友参考一下 1、云之讯平台数据返回Json格式: 2、聚合平台数据返回Json格式: 总结 以上所述是小编给大家介绍的python3.7实现云之讯、聚合短信平台的短信发送功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时
本文向大家介绍Java通过SMS短信平台实现发短信功能 含多语言,包括了Java通过SMS短信平台实现发短信功能 含多语言的使用技巧和注意事项,需要的朋友参考一下 Java通过SMS短信平台实现发短信功能 在项目中使用过发短信的功能,但那个由于公司内部的限制很麻烦,今天在网上找到一个简单的,闲来无事就把它记录如下: 本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条
本文向大家介绍MongoDB的聚合框架Aggregation Framework入门学习教程,包括了MongoDB的聚合框架Aggregation Framework入门学习教程的使用技巧和注意事项,需要的朋友参考一下 1. 聚合框架 使用聚合框架对集合中的文档进行变换和组合,可以用多个构件创建一个管道(pipeline),用于对一连串的文档进行处理。这些构件包括筛选(filtering),投射(