为什么通过Amazon SNS发送的短信无法被印度手机号码接收?
故障排查原因列表
- 手机号码格式错误
你当前填写的号码带有-分隔符,AWS SNS要求手机号必须符合E.164标准,不能包含横杠、空格、括号等任何分隔符,印度号码正确格式应为+91后直接拼接10位手机号,不需要额外加印度本地拨号前缀0,也不要任何分隔符号。 - SenderID未合规注册
印度电信监管机构TRAI要求所有发送到印度号码的短信必须使用经过官方注册的SenderID,你当前代码中使用的SENDER是未注册ID,会被运营商直接拦截。测试阶段可以先删除AWS.SNS.SMS.SenderID相关配置,使用AWS默认的短码发送,正式使用前需提前注册符合要求的SenderID。 - 账户处于SMS沙箱模式
新的AWS账户默认处于SNS短信沙箱模式,该模式下仅允许向你提前在SNS控制台手动验证过的手机号发送短信,未验证的号码即使接口返回成功也不会实际投递。你可以登录AWS控制台进入「SNS > 移动 > 文本消息(SMS)」页面,查看是否有沙箱模式提示,要么把测试手机号添加到沙箱验证列表,要么提交工单申请脱离沙箱模式。 - 短信内容不符合印度监管要求
印度要求事务性短信必须匹配提前报备的模板,你当前的测试内容如果没有对应备案模板会被运营商拦截。另外如果内容包含营销类敏感词,也会被过滤系统拦截。 - 未开通印度区域短信发送权限
部分AWS账户默认没有开通印度等高风险地区的短信发送权限,你可以到AWS支持中心提交工单,申请开通印度地区的SMS发送权限。 - 查看CloudWatch投递日志定位具体原因
SNS返回消息ID仅代表AWS接收了你的发送请求,不代表运营商成功投递。你可以到CloudWatch中查看SNS短信投递日志,日志中会明确标注失败原因,比如号码无效、运营商拦截、SenderID未注册等,可以快速定位问题。
内容的提问来源于stack exchange,提问作者jenny jenkins
相关产品推荐
相关产品推荐

