查不到发送记录需先确认发送通道:个人手机短信无云端记录,企业级服务(如阿里云短信)才提供180天内可追溯的发送明细,且仅能在对应平台后台查询。

查不到发送记录?先确认你用的是哪个通道
短信发送记录是否能查、查多久、怎么导出,完全取决于你用的发送渠道——不是所有“发过短信”都能在同一个地方看到。个人手机短信(如iPhone自带信息App)没有云端记录;而企业级短信服务(如阿里云短信)才提供完整可追溯的发送明细。
常见混淆点:
• 你在手机上点“发送”一条验证码,这条记录只存在本地数据库(且可能被自动清理),运营商官网或短信APP查不到;
• 你在阿里云控制台调用SendSms接口发的国际短信,才能在国际/港澳台短信 > 发送后 > 发送记录查询里看到,且最多查180天;
• 如果是通过第三方SaaS平台(如微盟、有赞)发的营销短信,得去它们后台查,跟阿里云或运营商无关。
阿里云短信控制台:5步定位真实发送状态
阿里云的“发送记录”页面显示的不是“我点了发送”,而是“运营商是否接收到并尝试投递”。很多开发者误以为SendSms返回Code: OK就代表用户收到了,其实只是请求被网关接收。真正成败看回执:
- 登录控制台后,进入
发送详情 > 全球短信,注意时间范围不能超过连续7天 - 手机号必须输纯数字、不带
+号,例如加蓬号码填2412000000,中国大陆号码填18612345678 - 关键筛选项是
发送状态(success / fail)和状态码(如isv.BUSINESS_LIMIT_CONTROL表示触发流控) - 若看到内容显示为
***或签名显示未知签名,说明该条未通过签名审核或模板未报备成功 - 导出时如果结果超5万条,系统会拒绝
导出当前结果,必须改用新建导出任务,否则卡在“申请中”不动
为什么运营商查不到你发的“企业短信”?
中国移动/联通/电信官网或APP只能查你用本机号码发的点对点短信(比如给朋友发“吃饭了吗”),查不到任何通过API、平台、网关发出的企业类短信——这类流量走的是专用通道,归属权在短信服务商,不在运营商计费系统里。
典型误操作:
• 拨打10086要求查“昨天发给客户的1000条验证码”,客服无法提供;
• 在“中国移动”APP里翻遍“短信详单”,只看到自己发给张三李四的几条,漏掉全部业务短信;
• 以为SIM卡换了手机,历史发送记录还能同步——实际上,换机=清空本地短信数据库,无云端备份。
调试阶段别只盯“发送成功”,重点看回执和错误码
开发联调时最容易忽略的是异步回执机制。你调SendSms拿到MessageId,只是请求入队;真正决定成败的是后续几分钟内推送的回执消息(含status、err_code、fee等字段)。不监听回执,等于闭眼开车。
实操建议:
• 在控制台开启短信回执回调,把地址配到你的测试服务器;
• 用curl模拟接收回执,验证解析逻辑是否兼容status=success和status=failed两种格式;
• 遇到isv.SMS_SIGNATURE_NOT_AUTHORIZED错误,不是重发就行,要立刻检查资质管理页里签名状态是否为“审核通过”,且已手动触发运营商侧报备;
• 国际短信失败时,优先查mccmnc(运营商编码),比如泰国AIS是52001,若匹配不到对应通道配置,直接拦截。
真正难的从来不是“怎么点出来”,而是理解每一条记录背后代表哪一层链路的状态——是SDK封装层?是阿里云网关?是国际运营商落地网?还是终端手机拒收?查记录只是起点,读懂状态码才是关键。










