使用Twilio、Python和Django REST Framework无法发送短信至手机和邮箱求解决
解决Twilio试用账号发送短信报错(21608)的问题
这个报错的核心原因很明确——你当前使用的是Twilio试用账号,这类账号有个硬性限制:只能给你在Twilio后台提前验证过的手机号发送短信/发起通话,未验证的号码会直接被拦截。下面给你几个针对性的解决方案:
方案一:验证目标手机号(快速解决单号码需求)
- 登录Twilio控制台,找到「Phone Numbers」板块下的「Verified Caller IDs」页面
- 点击「Add a new Caller ID」,输入你要发送短信的目标手机号
- 按照Twilio的提示完成验证流程(一般是给该号码发一条验证短信,或者打一通自动验证电话)
- 验证通过后,再重新调用发送接口,就能正常给这个号码发消息了
方案二:升级为付费账号(批量/任意号码需求)
如果你的业务需要给大量未验证的号码发送短信,那就得升级成付费账号:
- 登录Twilio控制台,进入「Billing」页面
- 添加有效的支付方式完成账号升级
- 升级后试用账号的所有限制都会解除,你可以给任意合规手机号发送短信
额外检查项
最后也可以顺手核对下Django代码里的发送逻辑,避免低级错误:
- 确保目标号码格式正确,必须带国际区号(比如国内号码要写成
+8613xxxxxxxxx) - 确认配置文件里的
ACCOUNT_SID和AUTH_TOKEN和Twilio控制台里的完全一致,没有拼写错误
错误提示里的21608码就是Twilio专门用来标记「试用账号访问未验证号码」的限制,按照上面的方案操作就能解决问题啦。
内容的提问来源于stack exchange,提问作者navnd
相关产品推荐
相关产品推荐

