Twilio外发SMS消息部分联系人未送达问题排查求助
你的代码逻辑不存在问题,给自己能正常收到说明鉴权、发送请求的流程是通的,异常出在短信发送的下游链路,常见诱因和解决方法如下:
常见诱因
- 号码格式不符合规范:Twilio要求接收方号码必须严格遵循E.164格式,即
+[国家码][不带前置0的手机号],比如中国手机号为+8613xxxxxxxxx,漏写国家码、多写手机号前置0、夹杂空格/特殊符号都会导致运营商无法正常路由短信,最终停留在Sent状态无法送达。 - 运营商侧拦截:Twilio提供的多为虚拟号码,部分地区运营商会对境外虚拟号发送的短信做风控拦截,尤其是短信内容包含易触发风控的关键词时,会被直接拦截丢弃不向用户推送。部分地区对跨境短信有合规管控要求,未备案的境外号发送的短信会被直接拦截。
- 接收方设备拦截:接收方开启了陌生短信拦截、骚扰拦截功能,或手动将你的Twilio号码加入黑名单,短信会被系统放入垃圾箱或直接删除,不会触发送达回执。
- Twilio账号权限不足:你的Twilio账号未开通对应接收方所在国家/地区的短信发送权限,或使用的Twilio号码不支持向该地区发送短信。
排查解决步骤
- 先核对所有无法接收短信的号码格式,确认完全符合E.164规范,无格式错误
- 让接收方查看手机的短信垃圾箱、骚扰拦截记录,确认是否有被拦截的对应短信
- 更换为完全中性无敏感词的测试内容(如
测试短信001)重新发送,确认是否是内容触发风控导致拦截 - 登录Twilio控制台核对账号的国际短信发送权限,确认已开通接收方所在地区的发送权限
- 若长期向某一地区的用户发送短信,建议注册该地区的本地Twilio号码发送,可大幅降低运营商拦截概率
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

