阿里云短信服务从零到一:完整对接实战指南

简介: 本文提供了一份完整的阿里云短信服务对接实战指南。首先需完成账号注册与企业实名认证,开通短信服务。接着依次申请短信资质、签名和模板,三者均审核通过后方可发送短信。发送方式支持控制台群发助手与API/SDK程序化调用,推荐使用RAM子账号AccessKey保障安全。文章详细介绍了Java和Python两种语言的SDK集成示例,涵盖SendSms接口调用、参数配置与异常处理。同时讲解了安全与限流配置、回执消息接收、常见错误码排查以及成本优化策略,帮助开发者快速、安全、低成本地完成短信服务对接。

一、认识阿里云短信服务

阿里云短信服务是阿里云提供的一种稳定可靠、高到达率的企业级通信服务,支持调用API或使用群发助手发送验证码、通知类和营销类短信。国内验证短信秒级触达,到达率最高可达99%;国际短信覆盖200多个国家和地区。短信服务主要应用于用户注册与登录的验证码发送、订单状态变更通知、服务到期提醒、预约确认、会员活动营销等场景。

需要注意的是,阿里云短信服务目前仅支持企业认证账号使用。个人认证用户功能受限,无法发送营销短信,且可能影响签名审核通过率。

需要先登录阿里云控制台,点击:阿里云控制台

二、整体接入流程概览

通过阿里云发送短信,整体流程可以分为以下核心步骤:

  • 账号准备与开通服务:注册阿里云账号、完成企业实名认证、开通短信服务
  • 申请资质:提交企业营业执照等资质材料,审核通过后方可申请签名
  • 申请短信签名:创建签名并等待审核通过(最快24小时)
  • 申请短信模板:创建模板并等待审核通过(约2-4小时)
  • 购买资源包或充值:确保账户有足够余额
  • 发送短信:通过控制台群发助手或API/SDK程序化发送

从2025年起,中国大陆新增短信签名必须完成运营商实名报备(5-10个工作日),请提前规划。

三、准备工作

3.1 注册账号与企业实名认证

访问阿里云官网注册阿里云账号。完成注册后,需要进行企业实名认证。个体工商户通常也算企业认证。实名认证是开通短信服务的硬性门槛。

3.2 开通短信服务

在阿里云产品列表中找到短信服务并开通。登录短信服务控制台,根据提示完成服务开通。

3.3 购买资源包或确保余额充足

短信服务计费方式分为按量计费和套餐包两种。国际站默认采用短信资源包付费模式,需要先购买资源包。如果有短信套餐包则先扣除套餐包,超出套餐包额度后按量计费,扣除账户余额。验证码和通知短信约0.045元/条起,推广短信约0.055元/条起。短信超过70字将拆分成多条计费。

3.4 创建RAM用户并获取AccessKey

AccessKey是调用API的凭证。强烈建议使用RAM子用户的AccessKey,并授予其AliyunDysmsFullAccess权限策略。这比直接使用主账号的AK更安全。

创建RAM用户的步骤:

  • 访问RAM控制台创建子用户
  • 为该子用户设置对应的权限,推荐授予AliyunDysmsFullAccess短信管理权限
  • 获取该子用户的AccessKey ID和AccessKey Secret

安全最佳实践:使用环境变量存储AccessKey(禁止硬编码)、定期轮换密钥、遵循最小权限原则。

四、申请资质

短信资质是阿里云对发送方身份的基础审核,相当于确认"你是谁"。企业需要提交营业执照或相关证件,阿里云会审核企业信息的真实性。资质审核通过后,才能进入签名和模板的申请环节。

根据工信部要求,发送国内短信需提供短信签名归属方的企业资质证件(如营业执照)进行备案。需要填写的信息包括:单位名称、单位法人姓名、单位法人身份证号、有效期、单位管理人手机号。需要上传的材料包括:单位营业执照、单位法人身份证正反面、单位管理人身份证正反面。

五、申请短信签名

签名就是用户收到短信时,最前面方括号里的那个名字,比如〖淘宝〗、〖菜鸟网络〗。它是短信发送方的身份标识,让用户知道这条短信是谁发的。签名必须与提交的资质相匹配,资质是A公司,签名就应当是A公司相关的名称。

从2025年起,短信签名审核通过后,阿里云会自动向运营商发起实名制报备。这个流程平均需要5-7个工作日,部分情况可能需要7-10个工作日或更长。报备期间,签名无法用于发送短信。

六、申请短信模板

如果说签名解决的是"谁发的"的问题,那模板解决的就是"发什么"。阿里云短信服务不允许自由填写短信内容,所有发送的短信都必须基于已审核通过的模板。

模板内容支持变量占位符,用variable"{variable}的格式表示。比如验证码模板可以写成:"您的验证码为:{code},请勿泄露他人"。其中${code}在实际发送时会被替换为真实的验证码数字。模板内容需符合规范,不能包含金融信息、色情、赌博、毒品、党政、维权等敏感内容。变量名不能使用mobile、email等敏感词,否则审核可能不通过。

七、发送短信

签名和模板都审核通过后,就可以正式发送短信。阿里云短信服务支持两种主要发送模式:

7.1 控制台发送

通过控制台群发助手手动发送短信,适合运营人员批量发送营销短信或通知。也可以在控制台快速学习页面发送测试短信。每个账号最多可绑定5个测试手机号码。

7.2 API/SDK程序化发送

通过API或SDK程序化发送短信,适合将短信能力集成到业务系统中。开发者将阿里云SDK集成至应用中,通过RAM为应用分配具有短信服务权限的访问凭证,应用使用该凭证调用API发送请求,阿里云服务端完成鉴权与合规校验后,将消息交由短信网关处理,最终送达目标用户手机。

八、Java SDK集成示例

8.1 环境要求

Java版本需高于Java 8。

8.2 安装SDK

在Maven项目的pom.xml文件中,在标签内添加以下依赖:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dysmsapi20180501</artifactId>
    <version>请替换为最新版本号</version>
</dependency>

8.3 完整代码示例

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 com.aliyun.teautil.models.RuntimeOptions;
public class SendSmsDemo {
    public static void main(String[] args) throws Exception {
        // 1. 配置账号信息
        Config config = new Config()
            .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
            .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
            .setEndpoint("dysmsapi.ap-southeast-1.aliyuncs.com");
        // 2. 创建客户端
        Client client = new Client(config);
        // 3. 构建请求
        SendMessageToGlobeRequest request = new SendMessageToGlobeRequest()
            .setMessage("您的验证码为:123456,请勿泄露他人")
            .setTo("+8613912345678")
            .setFrom("YourSignature")
            .setChannelId("");
        // 4. 发送短信
        RuntimeOptions runtime = new RuntimeOptions();
        SendMessageToGlobeResponse response = client.sendMessageToGlobeWithOptions(request, runtime);
        // 5. 处理响应
        System.out.println("RequestId: " + response.getBody().getRequestId());
        System.out.println("Code: " + response.getBody().getCode());
        System.out.println("Message: " + response.getBody().getMessage());
    }
}

上述代码示例调用的是SendMessageToGlobe接口。如果是发送到中国内地的短信,应使用SendMessageWithTemplate接口,通过模板ID和模板参数发送。

九、Python SDK集成示例

9.1 环境要求

Python版本需大于等于3.7。

9.2 安装SDK

pip install alibabacloud_dysmsapi20180501

9.3 完整代码示例

import os
from alibabacloud_dysmsapi20180501.client import Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dysmsapi20180501 import models as dysmsapi_models
from alibabacloud_tea_util import models as util_models
class SendSmsDemo:
    def __init__(self):
        config = open_api_models.Config(
            access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
            access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
            endpoint='dysmsapi.ap-southeast-1.aliyuncs.com'
        )
        self.client = Client(config)
    def send_sms(self):
        request = dysmsapi_models.SendMessageToGlobeRequest(
            message='您的验证码为:123456,请勿泄露他人',
            to='+8613912345678',
            from_='YourSignature',
            channel_id=''
        )
        runtime = util_models.RuntimeOptions()
        try:
            response = self.client.send_message_to_globe_with_options(request, runtime)
            print(f'RequestId: {response.body.request_id}')
            print(f'Code: {response.body.code}')
            print(f'Message: {response.body.message}')
        except Exception as e:
            print(f'发送失败: {e}')
if __name__ == '__main__':
    demo = SendSmsDemo()
    demo.send_sms()

十、安全与限流配置

10.1 安全最佳实践

  • 使用RAM子账号AccessKey,避免使用主账号
  • AccessKey禁止硬编码在代码中,应使用环境变量或配置中心管理
  • 定期轮换AccessKey
  • 遵循最小权限原则,仅授予必要的短信服务权限

10.2 限流配置

单号码限频为1天20条。可以在控制台系统设置中修改日发送量总量限额。

十一、回执消息配置

回执消息是在使用API接口发送短信之后,帮助您掌握短信发送成功率和业务支持的重要机制。短信服务接收回执消息的模式有轻量消息队列消费模式和HTTP批量推送模式两种。通过配置回执消息,可以获取短信的最终发送状态(成功或失败),以及运营商返回的错误码,便于进行业务统计和异常排查。

十二、常见错误码排查

  • RAM校验失败,用户权限不足:请授权RAM调用接口的全部权限,重新尝试
  • 短信服务没开通:请在控制台开通短信服务
  • 签名和模板类型不一致:模板和签名类型需要匹配
  • 账户余额不足:为阿里云账户充值或购买资源包
  • 模板不合法:模板不存在或被拉黑
  • API返回Code为OK但短信未收到:登录控制台查看发送记录中的运营商回执错误码

十三、成本优化策略

  • 购买短信套餐包比按量计费更划算。例如500条套餐包约10元,折合0.02元/条
  • 短信超过70字会拆分成多条计费,尽量控制短信长度在70字以内
  • 验证码和通知短信约0.045元/条起,推广短信约0.055元/条起
  • 关注套餐包的有效期,避免过期浪费

十四、常见问题

问:个人认证账号可以使用阿里云短信服务吗?

答:阿里云短信服务目前仅支持企业认证账号使用。个人认证用户功能受限,无法发送营销短信,建议升级为企业认证。

问:短信签名审核需要多长时间?

答:签名在工作时间段提交审核,预计最快24小时审核完成。从2025年起,签名审核通过后还需完成运营商实名报备,约需5-10个工作日。

问:短信模板审核需要多长时间?

答:模板审核预计2-4小时完成。

问:为什么API返回成功但用户收不到短信?

答:建议登录短信服务控制台,在业务统计 > 发送记录页面查看该条短信的运营商回执错误码。可能是手机终端问题(信号差、安全软件拦截、垃圾短信过滤等)。

问:如何保证AccessKey安全?

答:强烈建议使用RAM子用户的AccessKey,并授予最小权限。使用环境变量存储AccessKey,禁止硬编码在代码中,定期轮换密钥。

问:短信服务如何计费?

答:短信服务有两种计费方式:按量计费和套餐包。验证码和通知短信约0.045元/条起,推广短信约0.055元/条起。短信超过70字拆分成多条计费。

相关文章
|
5天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
421 125
|
8天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
712 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
5天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
414 123
|
4天前
|
人工智能 自然语言处理 API
阿里云Token Plan团队版解析:功能、三档套餐与省钱订阅指南
阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的AI大模型订阅服务,以Credits为统一计量单位,整合文本与图像生成模型,提供团队管理、数据安全、多工具兼容等核心能力,解决团队零散订阅AI服务的管理混乱、成本失控、数据安全等痛点。本文将从核心定位、套餐详情、计费规则、团队管理、工具兼容、便宜订阅技巧等方面,全面解析Token Plan团队版,帮助企业与团队高效、低成本地使用AI服务。
308 108
|
5天前
|
存储 人工智能 数据可视化
别再手动复制 Skill 了:多 Agent 时代的 Skill 管理方案
多 Agent 场景下 Skill 的统一管理与同步。
256 123
|
19天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
12天前
|
缓存 人工智能 运维
GLM 5.2自托管全流程实战:硬件选型、vLLM/SGLang部署与成本盈亏测算
2026年智谱发布GLM 5.2超大混合专家模型,区别于以往仅开放API的闭源大模型,该模型权重以MIT开源协议对外发布,企业与开发者可完整下载、本地审计、私有化部署,实现数据不出环境、自定义微调、自主调度推理资源。GLM 5.2拥有753B总参数,原生支持百万级上下文窗口,在代码生成、长文档推理、数学逻辑等多项基准测试中对标国际顶尖商用模型,是首款可完整自托管的前沿代码向大模型。
937 0
|
13天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)