Skip to content

使用 Java 实现 Azure 通信服务发送 SMS 短信

通过 Azure Communication Services (ACS) 的 Java SDK,开发者可以快速在应用中集成短信发送功能,支持 OTP 验证码、系统通知、营销群发及投递状态追踪。

为什么需要这个技能

在构建企业级应用时,短信是触达用户的关键渠道。无论是发送一次性密码 (OTP)、紧急警报还是批量营销信息,都需要一个稳定、可扩展且支持全球发送的基础设施。

Azure Communication Services 提供了统一的 API 来处理这些需求。通过掌握该 Java SDK 的使用方法,开发者可以避免手动处理复杂的 HTTP 请求,直接通过强类型客户端实现高效的短信发送流,并能通过投递报告实时监控消息状态。

适用场景

  • 用户验证:实现注册、登录时的手机号 OTP 验证码发送。
  • 系统告警:在后端服务出现关键错误时,向运维人员推送实时短信通知。
  • 营销触达:向特定用户群体发送批量促销信息或活动提醒。
  • 状态追踪:需要通过投递报告(Delivery Reports)确认短信是否真实到达用户手机。

核心工作流

1. 环境准备与依赖配置

首先在 pom.xml 中引入必要的 SDK 依赖:

xml
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-sms</artifactId>
    <version>1.2.0</version>
</dependency>

2. 创建 SMS 客户端

支持多种认证方式,推荐使用 DefaultAzureCredential 以增强安全性:

java
import com.azure.communication.sms.SmsClient;
import com.azure.communication.sms.SmsClientBuilder;
import com.azure.identity.DefaultAzureCredentialBuilder;

SmsClient smsClient = new SmsClientBuilder()
    .endpoint("https://<resource>.communication.azure.com")
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

3. 发送短信

  • 单发:直接调用 send 方法。
  • 群发:使用 sendWithResponse 并传入接收者列表。
  • 高级配置:通过 SmsSendOptions 开启投递报告或添加业务标签(Tag)。
java
import com.azure.communication.sms.models.SmsSendOptions;
import java.util.Arrays;

SmsSendOptions options = new SmsSendOptions()
    .setDeliveryReportEnabled(true)
    .setTag("order-12345");

smsClient.sendWithResponse(
    "+14255550100", 
    Arrays.asList("+14255551234", "+14255556789"), 
    "您的订单已发货!", 
    options, 
    Context.NONE
);

4. 异常处理与状态检查

由于短信发送涉及第三方网络,必须检查 SmsSendResult.isSuccessful() 以及处理 HttpResponseException

下载和安装

下载 azure-communication-sms-java 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐