使用爱尔兰Twilio号码发美国SMS遇错误21612,求解决方案
解决爱尔兰Twilio号码向美国号码发送SMS报错21612的具体步骤
检查号码国际短信权限
登录Twilio控制台,进入「Phone Numbers」→「Manage」→「Active Numbers」,找到你的爱尔兰号码(+35386xxxx)。在号码详情页的「Messaging」板块,查看「International SMS」设置,确认是否开启了美国(US)的发送权限,没开的话直接勾选启用并保存。校验请求参数格式
确保「To」参数是标准E.164格式的美国号码(比如+12345678900),不能省略国家码或用短号;「From」参数严格用你的爱尔兰Twilio号码,别加空格、括号这类额外字符。切换全球通用发送号码
如果前两步没用,直接换Twilio的全球短信号码——这类号码默认支持向绝大多数国家/地区发消息,不用单独配置地区权限。操作步骤:- 控制台进入「Phone Numbers」→「Buy a Number」,筛选「Global SMS」选项,买一个无地区限制的全球号码
- 把发送请求里的「From」换成这个新号码,测试向美国及其他地区号码发信
完成美国A2P合规认证
美国对商业短信有强制合规要求,哪怕用爱尔兰号码发也得做:- 进入控制台「Messaging」→「Services」,找到你用的短信服务(没创建就新建一个)
- 提交企业信息、短信用途(问卷发送)完成A2P 10DLC认证,获取合规的Sender ID
- 把认证后的短信服务关联到你的发送号码,同时确保短信内容有明确退订方式(比如回复STOP退订)
用最简请求排查代码问题
写个极简的API请求测试,排除代码逻辑问题:from twilio.rest import Client account_sid = '你的账户SID' auth_token = '你的认证Token' client = Client(account_sid, auth_token) message = client.messages.create( body='测试问卷:请点击xxx', from_='+35386xxxx', to='+12345678900' ) print(message.sid)要是这个请求成功,说明问题在你原有代码的参数或逻辑上;要是还报错,回头检查权限和合规配置。
内容的提问来源于stack exchange,提问作者Rory Forde
相关产品推荐
相关产品推荐

