这款项目让短信发送变得更简单,牛逼!

文摘   2025-01-20 21:02   江西  


* 戳上方蓝字“程序掘金”关注我



项目简介

SMS4J(Short Message Service for Java)是一个由dromara团队开发的短信聚合框架。在日常的项目开发中,短信验证码发送是一个必不可少的环节,特别是随着手机互联网的普及,几乎所有的安全验证都离不开短信验证码。

然而,市面上短信服务商众多,每家都有不同的API接口和标准,使得开发者在接入短信服务时需要花费大量时间和精力。

SMS4J正是为了解决这一痛点而诞生的,它通过封装各家短信服务商的API,提供了一个统一的发送标准,使得开发者只需通过简单的配置文件即可使用多家短信服务。

功能特性

  • 开箱即用:SMS4J提供了极简单的配置方式,开发者只需在配置文件中填写相应的短信服务商信息,即可快速接入短信服务。
  • 简单优雅:SMS4J统一了各家短信服务商的发送方式和功能,省去了学习不同短信服务商差异化方法的麻烦,使得发送短信变得更加简单和优雅。
  • 切换灵活:通过配置文件,开发者可以轻松切换不同的短信服务商,无需修改代码,极大提高了开发效率和灵活性。
  • 功能丰富:SMS4J不仅支持发送短信验证码,还支持发送固定模板短信、自定义模板短信等多种功能。同时,SMS4J还提供了一个默认的线程池用于执行异步短信任务,确保短信发送的效率和稳定性。
  • 持续集成:SMS4J已经接入了多家常见的短信服务商,并且后续还将继续集成更多的短信服务商,以满足不同开发者的需求。

快速安装

以下是如何在Spring Boot项目中快速集成SMS4J的步骤:

1、添加依赖:

在项目的pom.xml文件中添加SMS4J的依赖:

<dependency>
    <groupId>org.dromara.sms4j</groupId>
    <artifactId>sms4j-spring-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

2、配置文件:

在项目的application.yml文件中添加SMS4J的相关配置:

sms:
  config-type:yaml
blends:
    自定义标识1:
      accessKeyId:您的accessKey
      accessKeySecret:您的accessKeySecret
      signature:测试签名
      templateId:SMS_215125134
      templateName:code
      requestUrl:dysmsapi.aliyuncs.com
    自定义标识2:
      appKey:5N6fvXXXX920HaWhVXXXXXX7fYa
      app-secret:Wujt7EYzZTBXXXXXXEhSP6XXXX
      signature:华为短信测试
      sender:8823040504797
      template-id:acXXXXXXXXc274b2a8263479b954c1ab5
      url:https://XXXXX.cn-north-4.XXXXXXXX.com:443

3、编写测试代码:

在项目的控制器中编写测试发送短信的代码:

@RestController
@RequestMapping("/test/")
public class DemoController {

    // 测试发送固定模板短信
    @RequestMapping("/")
    public void send() {
        // 阿里云向此手机号发送短信
        SmsFactory.getSmsBlend("自定义标识1").sendMessage("18888888888""123456");
        // 华为短信向此手机号发送短信
        SmsFactory.getSmsBlend("自定义标识2").sendMessage("16666666666""000000");
    }
}

4、运行项目:

启动Spring Boot项目,访问/test/接口即可测试发送短信功能。

项目小结

SMS4J是一个功能丰富、简单易用的短信聚合框架,它极大地简化了短信服务的接入流程,提高了开发效率和灵活性。通过统一各家短信服务商的发送标准,SMS4J让发送短信变得更加简单和优雅。同时,SMS4J还提供了丰富的功能和灵活的切换方式,以满足不同开发者的需求。

项目地址:https://github.com/dromara/SMS4J



开源先锋
分享Github上最有趣的开源项目
 最新文章