sms4j 发送短信

news2025/4/11 7:31:39

一、使用介绍

  • 技术介绍:
SMS4J: 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
  • 项目地址:

SMS4J: 让简单的事情回归简单的本质。 SMS4J为短信聚合框架,帮您轻松集成多家短信服务,解决接入多个短信SDK的繁琐流程。 目前已接入数家常见的短信服务商,后续将会继续集成。后续的版本中我们还将推出更多的相关功能 你的 ⭐️ ⭐️⭐️Star⭐️⭐️ ⭐️,是我的动力!如果你觉得还不错,请点上一颗小星星 (gitee.com)icon-default.png?t=O83Ahttps://gitee.com/dromara/sms4j

  • sms4j 项目整合 文档地址:

🐍简介 | SMS4J文档前言: 本项目的开发和测试以及支持更多的运营厂商,均需要作者去掏钱买对应厂商的短信(在此批判那些起售一万条的厂商!)网站的域名以及服务器均需要大量的成本支出。 sms4j将持续免费的更新下去,如果你觉得这个项目对你有所帮助,还请放行网站广告,并为我们点一个star。如果方便,欢迎您对我们进行赞助或者捐助,您的支持将是我们前进的最大动力! 参考demo ...icon-default.png?t=O83Ahttps://sms4j.com/doc3

二、集成到项目

2.1 引入maven依赖

<dependency>
            <groupId>org.dromara.sms4j</groupId>
            <artifactId>sms4j-spring-boot-starter</artifactId>
             <version> version </version>
            <exclusions>
                <!-- 排除京东短信内存在的fastjson等待作者后续修复 -->
                <exclusion>
                    <groupId>com.alibaba</groupId>
                    <artifactId>fastjson</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

2.2 配置yml 短信厂商

厂商支持:

阿里云 --- alibaba
容联云 --- cloopen
天翼云 --- ctyun
亿美软通 --- emay
华为云短信 --- huawei京东云短信 --- jdcloud网易云信 --- netease
腾讯云短信 --- tencent
合一短信 --- unisms
云片短信 --- yunpian
助通短信 --- zhutong
鼎众短信 --- dingzhong
联麓短信 --- yunpian
七牛云短信 --- qiniu

厂商差异配置文档地址:

✨厂商配置 | SMS4J文档icon-default.png?t=O83Ahttps://sms4j.com/doc3/supplierConfig.html

该处演示阿里和腾讯短信配置:

--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
# https://wind.kim/doc/start 文档地址 各个厂商可同时使用
sms:
  # 阿里云 dysmsapi.aliyuncs.com
  alibaba:
    #请求地址 默认为 dysmsapi.aliyuncs.com 如无特殊改变可以不用设置
    requestUrl: dysmsapi.aliyuncs.com
    #阿里云的accessKey
    accessKeyId: xxxxxxx
    #阿里云的accessKeySecret
    accessKeySecret: xxxxxxx
    #短信签名
    signature: 测试
  tencent:
    #请求地址默认为 sms.tencentcloudapi.com 如无特殊改变可不用设置
    requestUrl: sms.tencentcloudapi.com
    #腾讯云的accessKey
    accessKeyId: xxxxxxx
    #腾讯云的accessKeySecret
    accessKeySecret: xxxxxxx
    #短信签名
    signature: 测试
    #短信sdkAppId
    sdkAppId: appid
    #地域信息默认为 ap-guangzhou 如无特殊改变可不用设置
    territory: ap-guangzhou

三、阿里云配置

搜索短信服务:

配置发送模版:

创建accesskey用户,就能得到 啊里云的accessKey 和 阿里云的accessKeySecret。复制到上面yml配置中就行

注意:记得给账号授权

 四、发送短信测试

测试调用阿里云短信:


@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/demo/sms")
public class SmsController {

    /**
     * 发送短信Aliyun
     *
     * @param phones     电话号
     * @param templateId 模板ID
     */
    @GetMapping("/sendAliyun")
    @SaIgnore
    public R<Object> sendAliyun(String phones, String templateId) {
        LinkedHashMap<String, String> map = new LinkedHashMap<>(1);
        map.put("code", "1234");
        SmsBlend smsBlend = SmsFactory.createSmsBlend(SupplierType.ALIBABA);
        SmsResponse smsResponse = smsBlend.sendMessage(phones, templateId, map);
        return R.ok(smsResponse);
    }

    /**
     * 发送短信Tencent
     *
     * @param phones     电话号
     * @param templateId 模板ID
     */
    @GetMapping("/sendTencent")
    public R<Object> sendTencent(String phones, String templateId) {
        LinkedHashMap<String, String> map = new LinkedHashMap<>(1);
//        map.put("2", "测试测试");
        map.put("1", "1234");
        SmsBlend smsBlend = SmsFactory.createSmsBlend(SupplierType.TENCENT);
        SmsResponse smsResponse = smsBlend.sendMessage(phones, templateId, map);
        return R.ok(smsResponse);
    }

}

调用参数:

  • phones:接受的手机号
  •  templateId :指的是模版code

  • 发送路径:
    GET http://localhost:8080/demo/sms/sendAliyun?phones=18761581366&templateId=SMS_305031111

 收到短信

 

 博主精心整理专栏,CV大法即可用,感谢您小手点一点 手动跪拜:  

1- SpringBoot框架常用配置(若依),代码解读:

http://t.csdnimg.cn/jpsSN

2- java常用工具类整理,示例演示:

http://t.csdnimg.cn/gmCfJ

3- CompletableFuture 异步编排实际代码展示

http://t.csdnimg.cn/ZuC0N

4- XXL-JOB 详细学习,手把手带入门

http://t.csdnimg.cn/lyR7Y

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2131467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8招教你轻松解决职场甩锅PUA!

你是不是四十岁了还不知道解决职场甩锅行为也是有公式的&#xff01; 那些混得好&#xff0c;能轻松赢得领导赏识&#xff0c;快速升职的&#xff0c;都 是早就把这些技巧背的滚瓜烂熟&#xff01; 比如&#xff1a; 1、同事的错&#xff0c;领导误会是你 错误话术 这不是…

【Linux】在Windows搭建WSL2开发环境

在Windows搭建WSL2开发环境 WSL安装和调整更改安装位置变更默认apt源 Python环境变更默认Python版本安装pip WSL安装和调整 这里使用的WSL2&#xff0c;Ubuntu22.04 如果在WSL中需要使用系统代理但是报以下的错&#xff1a; 在当前Windows用户目录下创建.wslconfig并写入以下配…

网络工程师考试真题及解析

1. 在不同类型的操作系统中&#xff0c;批处理操作系统的缺点是&#xff08;&#xff09;。 A) 缺少交互性 B) 不能并发运行 C) CPU利用率低 D) 周转时间太长 A【解析】批处理操作系统的优点是作业流程自动化较高&#xff0c;资源利用率较高&#xff0c;作业吞吐量大&…

word文档无损原样转pdf在windows平台使用python调用win32com使用pip安装pywin32

前提&#xff1a; windows环境下&#xff0c;并且安装了office套装&#xff0c;比如word,如果需要调用excel.也需要安装。在另外的文章会介绍。这种是直接调用word的。所以还原度会比较高。 需求&#xff1a; word文档转pdf,要求使用命令行形式&#xff0c;最终发布为api接口…

1992-2022年各省市县夜间灯光数据(excel+shp格式)

1992-2022年各省市县夜间灯光数据&#xff08;excelshp格式&#xff09; 1、时间&#xff1a;1992-2022年 2、来源&#xff1a; DMSP-OLS、NPP-VIIRS 3、指标&#xff1a;均值、总和、最小值、最大值、标准差 4、范围&#xff1a;34省市&#xff08;含港澳台&#xff09;、…

learn C++ NO.16——模板

typename关键字 typename是一个c关键字&#xff0c;主要用于解决模板定义中的依赖类型名称的解析问题。它告诉编译器紧随其后的名称是一个类型&#xff0c;而不是静态成员或成员函数。在模板编程中正确使用typename是理解和编写复杂模板代码的关键。 那什么是模板定义中的依赖…

聚鼎装饰画:做一家装饰画店铺能不能赚钱呢

在当今这个快节奏、高压力的社会环境中&#xff0c;人们越来越渴望在繁忙的生活中找到一丝宁静与美感。装饰画&#xff0c;作为提升居家和办公环境品位的艺术品&#xff0c;其市场需求日益增长。那么&#xff0c;做一家装饰画店铺究竟能不能赚钱呢? 从市场需求的角度来看&…

Codeforces practice /C++ 2024/9/11 - 2024/9/13

D. Mathematical Problem Codeforces Round 954 (Div. 3) 原题链接&#xff1a;https://codeforces.com/contest/1986/problem/D 题目标签分类&#xff1a;brute force&#xff0c;dp&#xff0c;greedy&#xff0c;implementation&#xff0c;math&#xff0c;two pointers…

深度学习经典模型之T5

T5(Text-to-Text Transfer Transformer) 是继BERT之后Google的又外力作&#xff0c;它是一个文本到文本迁移的基于Transformer的NLP模型&#xff0c;通过将 所有任务统一视为一个输入文本并输出到文本(Text-to-Text)中&#xff0c;即将任务嵌入在输入文本中&#xff0c;用文本的…

element ui form 表单出现英文提示的解决方案

场景再现&#xff1a; 在使用 form 表单的时候&#xff0c;一般都需要对表单元素进行验证&#xff0c;错误就出现在了这里&#xff0c;除了配置的错误信息&#xff0c;还会出现一个 英文校验提示&#xff0c;如下图&#xff1a; 解决方案 出现的原因是在el-form-item中使用…

推动数据治理与传统产业深度融合:解锁产业升级新引擎

标题&#xff1a;推动数据治理与传统产业深度融合&#xff1a;解锁产业升级新引擎 在数字化浪潮席卷全球的今天&#xff0c;数据已成为驱动经济社会发展的关键生产要素。传统产业&#xff0c;作为国民经济的基石&#xff0c;正面临着前所未有的变革挑战与转型升级的机遇。数据…

SVN的使用技巧

SVN&#xff08;Subversion&#xff09;是近年来崛起的版本管理工具&#xff0c;因为是免费的&#xff0c;所以用的人还是不少的。故做一些总结。 如果是新手&#xff0c;基本对SVN一点都不了解的话&#xff0c;建议去学习一下这个系统的教程&#xff0c;讲的也很详细Tortoise…

腾讯发布大模型安全与伦理报告:以负责任AI引领大模型创新

前言 随着AI模型的能力日益更加强大&#xff0c;如何让其行为和目的跟人类的价值、偏好、伦理原则、真实意图之间实现协调一致&#xff0c;这个被称为人机价值对齐的问题变得越来越重要。价值对齐对于确保人类与人工智能协作过程中的信任与安全至关重要&#xff0c;已经成为AI…

今年的智能手机不仅仅是AI

周一&#xff0c;苹果揭开了其iPhone 16系列的面纱&#xff0c;主要卖点是苹果智能。苹果的设备内AI系统提供了许多引人注目的功能&#xff0c;比如重写电子邮件、生成自定义表情符号和大幅升级的Siri。但在这些表面之下&#xff0c;AI为iPhone带来的还有一个重大变化&#xff…

使用API有效率地管理Dynadot域名,查看域名服务器(NS)信息

前言 Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮箱&…

js 深入理解生成器

目录 概述1 . 生成器基础2. 与普通函数的区别3. 通过 yield 中断执行3.1 yield 是干嘛的&#xff1f;3.2 yield 和 return 的区别3.3 每个生成器对象作用域都是独立的3.4 yeild 的使用位置3.5 生成器对象作为可迭代对象3.6 使用 yield 实现输入和输出3.6.1 yield实现输入3.6.1 …

【原创】java+swing+mysql长途客车售票管理系统设计与实现

个人主页&#xff1a;程序员杨工 个人简介&#xff1a;从事软件开发多年&#xff0c;前后端均有涉猎&#xff0c;具有丰富的开发经验 博客内容&#xff1a;全栈开发&#xff0c;分享Java、Python、Php、小程序、前后端、数据库经验和实战 文末有本人名片&#xff0c;希望和大家…

【双语新闻】 AI 安全新闻 :计算规模的下一代,按越狱敏感性和机器道德对模型进行排名

计算规模的下一代 The Next Generation of Compute Scale AI开发正处在计算规模大幅扩展的边缘。从芯片制造到电力基础设施的最新发展&#xff0c;都指向一个未来&#xff0c;即人工智能模型可能会超过今天最大的系统。在这篇文章中&#xff0c;我们将审视关键的发展以及它们对…

Grafana 汉化

点击 Home -> Administration 点击 Default preferences 点击 中文&#xff08;简体&#xff09;后点击 Save 即可

科技感爆棚,智慧票务系统让你的出行超省心

宝子们&#x1f44b;&#xff0c;今天一定要给大家介绍一个超级厉害的东西 —— 智慧票务系统&#x1f389;&#xff01;&#x1f388;以前去景区、看演出&#xff0c;排队买票简直是一场噩梦&#x1f62b;&#xff0c;浪费时间不说&#xff0c;还影响心情。但有了智慧票务系统…