全部产品
Search
文档中心

短信服务:通过API/SDK使用短信服务

更新时间:Oct 15, 2025

本文为您介绍如何通过阿里云OpenAPI开发者门户或阿里云SDK调用短信服务,实现短信发送、查询等核心功能。

准备工作

在开始接入前,请确保您已完成以下准备工作:

  1. 注册账号并完成企业实名认证:阿里云短信服务目前仅支持企业认证账号使用,如果您未注册阿里云账号,请先完成注册账号企业实名认证

  2. 开通短信服务:登录短信服务控制台,根据提示开通短信服务。

  3. 购买短信服务资源包:阿里云国际站短信服务默认采用短信资源包付费模式,您需要先购买资源包再继续后续步骤。

    • 请确认您已经绑定了信用卡或者是Paypal账号到您的阿里云账号上。

    • 您可以根据您的短信发送目的地和短信资源包介绍购买合适的资源包,若您希望采用按量付费模式,请联系销售进行配置。

  4. 配置编译运行环境:主要分为创建RAM用户并授权配置阿里云访问密钥(AccessKey)两步,详细操作步骤请参见配置凭证

  5. 由于不同国家或地区当地的供应商报备及合规要求各不相同,请在短信发送前进行相关合规操作:

    • 如果您计划将短信发往中国大陆,您需要先创建短信签名创建短信内容,等待审核通过后才能使用。

    • 发往国际地区的短信,需要确认短信发送目标地是否需要报备SenderID。确认步骤及报备流程请参见SenderID报备流程

OpenAPI开发者门户

如果您习惯交互式操作界面,或作为初次使用阿里云产品的开发者,推荐使用OpenAPI开发者门户进行接口调试。它提供可视化界面、实时响应预览和参数校验,助您快速上手。您也可以在调试页面获取多语言SDK调用示例,便于后续集成。

image

可通过单击API文档页调试按钮进入OpenAPI开发者门户调试页

发往国际地区和中国香港、中国澳门和中国台湾地区

  • 调用SendMessageToGlobe接口,发送短信到国际地区和中国香港、中国澳门和中国台湾地区。

  • 调用BatchSendMessageToGlobe接口,批量发送短信到国际地区和中国香港、中国澳门和中国台湾地区。

  • 调用QueryMessage接口,查询短信发送状态。

发往中国大陆

集成短信SDK

SDK是最易于集成,且支持度最好的OpenAPI调用方式。本文将以Java语言为例,调用SendMessageToGlobe接口。其他编程语言SDK,请参见SDK参考

  1. 检查Java环境:您的Java版本需高于Java 8。Java环境配置的方法,请参见在Windows搭建Java开发环境

  2. 安装SDK:通过配置Maven依赖,完成SDK的安装。

    请在您的Maven项目的pom.xml文件中,在<dependencies>标签内添加以下信息并将 the-latest-version 替换为最新版本号。保存后请重新加载Maven依赖。

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>dysmsapi20180501</artifactId>
        <!-- 请将 'the-latest-version' 替换为最新版本号:https://mvnrepository.com/artifact/com.aliyun/dysmsapi20180501 -->
        <version>the-latest-version</version>
    </dependency>
  3. 代码示例:使用SDK调用发送短信API的代码示例如下,请根据注释完成参数填写。

    package com.aliyun.sample;
    
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.dysmsapi20180501.Client;
    import com.aliyun.dysmsapi20180501.models.SendMessageToGlobeRequest;
    import com.aliyun.dysmsapi20180501.models.SendMessageToGlobeResponse;
    import static com.aliyun.teautil.Common.toJSONString;
    
    public class Sample {
        public static Client createClient() throws Exception {
            Config config = new Config()
                    // 配置 AccessKey ID,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
                    .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    // 配置 AccessKey Secret,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
                    .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
    
            // 配置 Endpoint
            config.endpoint = "dysmsapi.ap-southeast-1.aliyuncs.com";
    
            return new Client(config);
        }
    
        public static void main(String[] args) throws Exception {
            // 初始化请求客户端
            Client client = Sample.createClient();
    
            // 构造请求对象,请填入请求参数值
            SendMessageToGlobeRequest sendSmsRequest = new SendMessageToGlobeRequest()
                    .setTo("<YOUR_VALUE>")
                    .setMessage("<YOUR_VALUE>");
    
            // 获取响应对象
            SendMessageToGlobeResponse sendSmsResponse = client.sendMessageToGlobe(sendSmsRequest);
    
            // 响应包含服务端响应的 body 和 headers
            System.out.println(toJSONString(sendSmsResponse));
        }
    }
  4. 您也可以下载示例代码,直接运行。

    1. 在左侧的参数配置页签,填写需要的参数信息。

    2. 在右侧的SDK示例页签,SDK版本选择v2.0,语言选择Java语言,单击下载完整工程按钮,下载示例代码包。

    3. 解压后使用IDE加载项目,待相关依赖加载完毕后,打开 src/main/java/com/aliyun/sample/Sample.java

  5. 返回示例:项目运行后可查看到输出,本示例中的返回内容如下。

    {
      "headers": {
        "date": "Tue, 24 Oct 2023 07:47:17 GMT",
        "content-type": "application/json;charset=utf-8",
        "content-length": "263",
        "connection": "keep-alive",
        "keep-alive": "timeout=25",
        "access-control-allow-origin": "*",
        "access-control-expose-headers": "*",
        "x-acs-request-id": "97B1D7B6-F2F6-3A50-97BC-A90B43EC962F",
        "x-acs-trace-id": "29c11fe4c778b74774d5f5602f0e7975",
        "etag": "2a+mcDRTDkXqx9VF7b6U57Q3"
      },
      "statusCode": 200,
      "body": {
        "ResponseCode": "OK",
        "NumberDetail": {
        "Region": "Taiwan",
        "Country": "Taiwan, Province of China",
        "Carrier": "FarEasTone"
      },
        "RequestId": "97B1D7B6-F2F6-3A50-97BC-A90B43EC962F",
        "Segments": "1",
        "ResponseDescription": "OK",
        "To": "88691567****",
        "MessageId": "191921698133637273"
      }
    }

回执消息

短信发送后,通过配置MNS消息队列消费模式和HTTP批量推送模式,可以接收短信发送状态的结果和用户回复的短信内容,帮助您掌握短信的发送成功率,为其他业务提供支持。

更多信息,请参见回执消息简介与配置流程

相关文档

  • API概览:通过阅读API文档了解接口的使用说明、参数信息及相关限制。

  • 错误码:调用API或回执消息时遇到错误,您可以在错误码文档中查看错误码详细信息。

  • 首次调用API:提供详细的开发环境配置、SDK调用流程和相关示例代码。

视频教程

国际短信服务开通视频教程