阿里云短信服务怎么用?开通、签名和模板审核要点

第一次接阿里云短信服务,很多人会卡在一个地方:签名和模板要先过审,审核没通过就发不出去,中间的几天只能干等。流程本身不绕,难的是知道先做什么、后做什么,以及哪些参数最容易写错。下面按实际操作顺序讲一遍。

阿里云短信服务怎么用?开通、签名和模板审核要点

开通服务并完成实名认证

进入控制台的短信服务页面开通产品。发送国内短信之前,账号需要先完成实名认证。个人账号和企业账号能申请的签名类型不一样,所以动手前先想清楚自己是哪种主体,免得签名被退回后再改。

服务按量计费,国内短信单价会随地区和套餐有所不同,具体以控制台公示为准。开通后可以先用控制台的测试发送功能,给自己的手机发一条,确认账号和通道都能用。这一步很快,却能提前排掉大部分“代码没问题,怎么就是发不出去”的疑问。

申请短信签名

签名就是短信开头方括号里的那段文字,比如【某某科技】。它通常使用企业名称或应用名称,而且要和提交的资质材料保持一致。资质上写的是全称,签名却填了简称,审核大概率会被驳回。审核时长以系统通知为准,别照搬别人的经验时间去排期。

创建并提交短信模板

模板大致分为验证码、通知、推广三类。验证码和通知类审核相对快,推广类会严格得多。模板里的变量写成 ${code} 这样的占位符,发送时再替换成真实值。

拿一个在线课程小程序来说,开发者小林需要两类短信,模板大致是这样:

  • 注册验证码:“您的验证码是${code},5分钟内有效。”类别选验证码。
  • 开课提醒:“您报名的课程${course}将于${time}开始,请准时上线。”类别选通知。

两个模板都顺利过了审。提交时的文字必须和之后实际发送的内容一致,哪怕只改了一个标点,也可能对不上。所以模板文案定下来之后最好别随手改。确实要改,就重新提交审核,不要先发了再说。

准备访问凭证

调用接口需要 AccessKey。别直接用主账号的 AccessKey,去 RAM 访问控制里建一个子账号,只授予短信服务相关的权限。这样即便密钥泄露,影响范围也小得多。密钥从环境变量里读取,不要写死在代码中,更不要提交到代码仓库,否则很容易被扫描到。

用 Python 发送短信

先安装 SDK:

pip install alibabacloud_dysmsapi20170525 alibabacloud_tea_openapi

小林的小程序后端,注册验证码就是用下面这段代码发出去的:

import os
from alibabacloud_dysmsapi20170525.client import Client
from alibabacloud_dysmsapi20170525 import models as sms_models
from alibabacloud_tea_openapi import models as open_api_models

config = open_api_models.Config(
    access_key_id=os.environ["ALIBABA_CLOUD_ACCESS_KEY_ID"],
    access_key_secret=os.environ["ALIBABA_CLOUD_ACCESS_KEY_SECRET"],
    endpoint="dysmsapi.aliyuncs.com",
)
client = Client(config)

request = sms_models.SendSmsRequest(
    phone_numbers="13800000000",
    sign_name="某某科技",
    template_code="SMS_123456789",
    template_param='{"code":"482913"}',
)
response = client.send_sms(request)
print(response.body.code, response.body.message)

其中四个参数最容易出问题:

  • phone_numbers:接收手机号。多个号码用英文逗号分隔,单次可发送的数量有上限,超过要分批。
  • sign_name:必须是已通过审核的签名,差一个字都会失败。最好从控制台复制,不要手打。
  • template_code:模板的 CODE,形如 SMS_ 开头的编号,在模板列表里查看。
  • template_param:JSON 字符串,键名要和模板里的变量名完全一致。大小写不一样也算不一致。

怎么判断发送成功

返回的 code 为 OK,说明阿里云已经受理了这条请求,但它不代表手机已经收到短信。真正的送达情况要到控制台的发送记录里看。代码里也别默认“没报错就是发出去了”,非 OK 的返回要记日志,并且给用户一个明确的提示。

发送失败时,常见的错误码大致有以下几类,具体含义请以官方错误码文档为准:

  • isv.BUSINESS_LIMIT_CONTROL:触发流控。通常是发送太频繁,需要降低请求速度,或者在业务侧加上限制。
  • isv.MOBILE_NUMBER_ILLEGAL:手机号格式不对,先在前端和后端都做一次格式校验。
  • isv.SMS_SIGNATURE_ILLEGAL:签名不存在,或者还没通过审核。先去控制台确认签名状态。
  • isv.TEMPLATE_MISSING_PARAMETERS:模板变量缺失,或变量名和模板对不上。这类错误多半出在 template_param 的键名上。

上线前要做的几件事

  • 验证码要设有效期,也要设发送间隔,比如同一手机号 60 秒内只能发一次。
  • 对同一 IP 和同一手机号的请求做频率限制。验证码接口一旦被人刷,短信费用会在很短时间内涨上去,而且很难追回。
  • 验证码和通知类模板不要夹带营销内容。这类模板如果被当成推广使用,可能会被封禁,到时候影响的是正常业务。
  • 正式放出之前,用几个真实号码把注册和提醒流程完整走一遍,包括短信到达的时间、内容是否正确,以及链接能否正常打开。
赞 (0)
阿里云服务器运维:宕机后先查哪几项,告警怎么配
上一篇 2026年11月1日 上午4:59
阿里云单域名控制台里续费和解析入口藏在哪
下一篇 2026年11月1日 上午4:59

相关推荐

  • 阿里云家居能管哪些设备,普通家庭用得上吗

    智能家居要从“能联网”走到“好用”,光有单个设备不够,还得有一个稳定的云端平台,把设备、用户和服务串起来。阿里云家居就是基于阿里云物联网平台搭建的这类体系,负责设备接入、远程控制、语音交互和数据分析。普通家庭通常是在音箱、灯具或门锁的 App 里接触到它,家电厂商和物业公司则会把它当成一套可以直接调用的底层工具。 阿里云家居到底包含什么 阿里云家居更像一组服…

    2026年11月1日
  • 阿里云官方微博怎么关注才靠谱,哪些内容值得看

    线上服务突然变慢,控制台里的指标看不出什么,群里讨论半天也说不清问题出在哪一层。做云上业务的人大多碰到过这种时候。这时候,平台官方发出的信息通常比二手消息可靠,阿里云官方微博就是值得长期放在关注列表里的一个窗口。 为什么要关注官方账号 很多人把微博当资讯流,刷到什么看什么。对云服务用户来说,官方账号更像一个固定的信息入口。产品更新、服务公告、活动预告、技术分…

    2026年11月1日
  • 阿里云的优势在哪?从双11扛峰值到大模型服务

    选云服务商时,很多企业先比价格。但真正影响长期成本和稳定性的,通常是底层技术、大流量下的实战经验,以及周边生态是否配套。阿里云是国内规模最大的云计算平台之一,这几方面的优势都比较具体。 自研底层:飞天操作系统 阿里云的核心是自研的分布式操作系统“飞天”。成千上万台服务器的计算、存储和网络资源由它统一调度,使用者面对的是一整套可以调用的资源,不必逐台管理机器。…

    2026年10月31日
  • 阿里混合云怎么选?架构、场景和落地要点

    企业上云这件事,大多数团队已经不讨论要不要上,而是纠结怎么上。公有云弹性好、迭代快,但核心业务数据、合规要求和一堆跑了很多年的老系统,很难整体搬走。混合云就是为这种情况准备的。阿里混合云的思路是把阿里云的能力延伸到企业自己的机房或指定区域,让两边能被统一管理、一起干活。这篇从架构、典型场景和落地要点三个方面,说说它在实际项目里怎么用。 阿里混合云是什么 可以…

    2026年10月31日
  • 阿里云80端口没通?安全组和防火墙要先查哪几项

    网站部署到阿里云ECS后,用浏览器访问公网IP却打不开页面,这种情况很常见。多数时候问题出在80端口。HTTP默认走80端口,官网、接口和静态资源基本都靠它对外提供服务,端口不通,页面自然出不来。下面通过一个案例,说明阿里云80端口该怎么开,以及访问不通时先看哪里。 先搞清楚80端口在做什么 服务器上的应用靠端口区分不同的服务。HTTP默认使用80端口,HT…

    2026年11月1日
返回顶部