Java 接入腾讯云 SMS 发短信(2023/06/02)

news/2025/3/28 7:49:08/

Java 接入腾讯云 SMS

文章目录

  • Java 接入腾讯云 SMS
    • 1. 开通短信服务
      • 1.1 注册腾讯云账号
      • 1.2 开通短信服务
    • 2. 配置短信内容
      • 2.1 创建签名
      • 2.2 创建正文模板
    • 3. 发送短信

本文将介绍如何通过 Java 接入腾讯云 SMS 实现发短信功能。

1. 开通短信服务

1.1 注册腾讯云账号

注册 - 腾讯云 (tencent.com)

1.2 开通短信服务

登陆短信控制台,勾选我已阅读并同意 腾讯云短信服务协议,单击开始接入即可开通。

2. 配置短信内容

一个完整的短信由短信签名短信正文内容组成,可以根据业务需求分别设置不同的模板,然后组合成最终短信内容:【短信签名】 短信正文内容

2.1 创建签名

进入签名管理结合实际情况设置相关参数点击确定即可。

2.2 创建正文模板

进入正文模板管理结合实际情况设置相关参数点击确定即可。

3. 发送短信

发送短信分为 API 与 SDK 两种方式,本文选择通过 Java SDK 的方式接入,具体过程如下:

  1. 添加 Maven 依赖:

    <dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.1.769</version>
    </dependency>
    
  2. 创建相关参数配置类:

    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Configuration;/*** 腾讯云配置.** @author <a href="mailto:xiaoQQya@126.com">xiaoQQya</a>* @since 2023/05/16*/
    @Data
    @Configuration
    @ConfigurationProperties(prefix = "tencentcloud")
    public class TencentCloudConfig {/*** 腾讯云账户信息*/private Account account = new Account();/*** 腾讯云短信服务信息*/private Sms sms = new Sms();@Datapublic static class Account {/*** 腾讯云账户密钥对*/private String secretId;/*** 腾讯云账户密钥对*/private String secretKey;}@Datapublic static class Sms {/*** 短信应用 ID*/private String sdkAppId;/*** 短信签名内容*/private String signName;/*** 短信模板 ID*/private String templateId;}
    }
    
  3. 配置上述各项参数:

    # application.yml
    tencentcloud:account:secret-id: "AKIDiHfqmTyEF31lGWYNxHMDpCKcibGgttfc"secret-key: "MUO2g8LJ2Zu2xe8PQGtKYhdOwGNHzUlP"sms:sdk-app-id: "1400706213"sign-name: "腾讯云"template-id: "1797899"
    
  4. 创建工具类:

    import com.tencentcloudapi.common.Credential;
    import com.tencentcloudapi.common.exception.TencentCloudSDKException;
    import com.tencentcloudapi.common.profile.ClientProfile;
    import com.tencentcloudapi.common.profile.HttpProfile;
    import com.tencentcloudapi.sms.v20210111.SmsClient;
    import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
    import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;/*** 短信工具类.** @author <a href="mailto:xiaoQQya@126.com">xiaoQQya</a>* @since 2023/05/16*/
    @SuppressWarnings(value = {"unused"})
    public class SmsUtils {private SmsUtils() {}/*** 发送短信.** @param secretId         腾讯云账户密钥对* @param secretKey        腾讯云账户密钥对* @param sdkAppId         短信应用 ID* @param signName         短信签名内容* @param templateId       模板 ID* @param templateParamSet 模板参数* @param phoneNumberSet   下发手机号码, 示例 +8613711112222* @return 发送结果* @throws TencentCloudSDKException TencentCloudSDKException 异常*/public static SendSmsResponse sendSms(String secretId,String secretKey,String sdkAppId,String signName,String templateId,String[] templateParamSet,String[] phoneNumberSet) throws TencentCloudSDKException {Credential cred = new Credential(secretId, secretKey);HttpProfile httpProfile = new HttpProfile();httpProfile.setReqMethod("POST");httpProfile.setConnTimeout(60);httpProfile.setEndpoint("sms.tencentcloudapi.com");ClientProfile clientProfile = new ClientProfile();clientProfile.setSignMethod("HmacSHA256");clientProfile.setHttpProfile(httpProfile);SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile);SendSmsRequest req = new SendSmsRequest();req.setSmsSdkAppId(sdkAppId);req.setSignName(signName);req.setTemplateId(templateId);req.setTemplateParamSet(templateParamSet);req.setPhoneNumberSet(phoneNumberSet);return client.SendSms(req);}
    }
    
  5. 发送短信:

    SmsUtils.sendSms(tencentCloudConfig.getAccount().getSecretId(),tencentCloudConfig.getAccount().getSecretKey(),tencentCloudConfig.getSms().getSdkAppId(),tencentCloudConfig.getSms().getSignName(),tencentCloudConfig.getSms().getTemplateId(),new String[]{"hello", "world"},new String[]{"+8613287236743", "+8615823753956"}
    );
    

参考:

  • 短信 国内短信快速入门-国内短信-文档中心-腾讯云 (tencent.com)
  • 短信 Java SDK-SDK 文档-文档中心-腾讯云 (tencent.com)

http://www.ppmy.cn/news/162227.html

相关文章

JavaWeb18(文件上传富文本编辑器)

目录 一、富文本编辑器 1.1 什么是富文本编辑器? 1.2 CKEditor 1.3 CKEditor 4的使用步骤【参考官方文档】 1.4 优化商品增加、查看、修改功能 1.5 尝试课外扩展其他富文本编辑器 二、文件上传 2.1 到底客户端的文件是上传到哪里? 2.2 SmartUpload是什么? 2.3 Sma…

低代码编程:简化开发,释放无限潜能

低代码编程&#xff1a;简化开发&#xff0c;释放无限潜能 在当今世界&#xff0c;技术的发展日新月异&#xff0c;而低代码编程作为一种新兴的技术手段&#xff0c;正逐渐改变着软件开发的生态。那么&#xff0c;低代码编程到底是什么&#xff1f;它有什么用&#xff1f;接下来…

Google 向平板电脑彻底说再见!

作者 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 优胜劣汰&#xff0c;适者生存。这是达尔文进化论&#xff0c;也是人、产品、企业之间的竞争法则。 近日&#xff0c;硅谷科技巨头 Google 宣布正式放弃平板电脑业务&#xff0c;同时 Google 也将停…

抖音上很火的夏日便捷小空调(网页版)

介绍&#xff1a; 优势 随时随地打开空调 低功耗(使用HTML CSS 而非 Canvas 绘制) 静音 操作简单 安装便捷 劣势 没有风 刚开机时比较吵 不懂请留言 此版本为网页版&#xff0c;不是小程序版。 网盘下载地址&#xff1a; http://kekewl.cc/2xsjSRTn3NQ0 图片&#xff1a;

❄️ 云空调网站源码 便携小空调,为你的夏日带去清凉

介绍&#xff1a; 天气逐渐变暖了&#xff0c;也快热起来了&#xff0c;我怕大家比较热&#xff0c;所以在线开了一个空调房&#xff0c;请自行享用。切记&#xff0c;一定要把手机声音打开&#xff08;50%左右&#xff09;&#xff0c;不要开太大&#xff0c;这样食用更佳&am…

最近很火的夏日便捷小空调源码(小程序版)

介绍&#xff1a; 最近是不是被小空调洗脑了&#xff1f; 优势&#xff1a; 随时随地打开空调 低功耗(使用HTML CSS 而非 Canvas 绘制) 静音 操作简单 安装便捷 劣势&#xff1a; 没有风 刚开机时比较吵 不懂请留言 此版本为小程序版本&#xff0c;不是网页版。 网盘下载地…

轻薄有劲,“分寸”得体,物优家空调系统与您共赴舒适生活

在寸土寸金的大城市&#xff0c;如果能拥有一个温馨的小窝&#xff0c;即使再平淡的日子&#xff0c;也充满了幸福感。然而&#xff0c;面对小空间、多环境的控温挑战&#xff0c;您该如何应对呢&#xff1f;此时&#xff0c;大家不妨前往物优家未来智家&#xff0c;PICK这位“…

计算机房精密空调术语,机房精密空调参数及含义

KW是物理量中功率和热流量标准单位。在空调器中KW表示单位时间内输入或输出机器能量的多少。制冷量KW显示的是空调器的输出能量&#xff0c;不要与用同一符号的空调器输人的电功率相混淆。 匹&#xff0c;实际上还经常看到lgl(也就是通常说的匹) ;这个单位。那么匹是什么意思呢…