You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已验证Caller ID且购Twilio号码,仍无法发送OTP短信求助

解决Twilio Trial账户发送OTP到已验证号码仍报错的问题

问题概述

你使用Java Spring Boot开发Twilio OTP短信功能时,收到以下错误:

{"status": "FAILED", "message": "The number +8496763XXXX is unverified. Trial accounts cannot send messages to unverified numbers; verify +8496763XXXX at twilio.com/user/account/phone-numbers/verified, or purchase a Twilio number to send messages to unverified numbers"}

你已确认接收号码+8496763XXXX在Verified Caller IDs中,且已购买Twilio号码+18052836183,但仍无法发送短信。

排查与解决步骤

1. 核对接收号码的验证细节

  • 登录Twilio控制台,进入Phone Numbers > Verified Caller IDs,严格核对接收号码的格式:必须是标准E.164格式(+8496763XXXX),无空格、短横线等多余符号。
  • 确认号码状态为「已验证」,若状态异常,删除后重新添加并完成验证流程(接收Twilio的验证短信/电话),等待5-10分钟让系统同步状态。

2. 检查Spring Boot代码中的参数配置

确保代码里的发送方、接收方号码配置完全正确:

  • 发送方必须使用你购买的Twilio号码+18052836183,不能用Twilio提供的测试号码或未购买的号码。
  • 接收方号码必须与Verified Caller IDs中的号码完全一致。
  • 示例代码参考:
// 替换为你的Twilio账户SID和Auth Token
Twilio.init("你的账户SID", "你的Auth Token");

String from = "+18052836183"; // 已购买的Twilio号码
String to = "+8496763XXXX";   // 已验证的接收号码
String otpMessage = "你的OTP验证码是:123456";

Message message = Message.creator(
    new PhoneNumber(to),
    new PhoneNumber(from),
    otpMessage
).create();

3. 验证Twilio账户的权限逻辑

  • 即使购买了Twilio号码,Trial账户仍无法向未验证号码发送短信,但你的情况是接收号码已验证,需确认Twilio系统是否正确同步了验证记录。若重新验证后仍无效,可尝试提交工单联系Twilio支持团队确认账户状态。
  • 若测试需求紧急,可考虑升级为付费账户,解除Trial状态的所有发送限制。

4. 查看Twilio API日志定位问题

进入Twilio控制台的Monitor > Logs > Messaging,查看具体的请求日志:

  • 检查请求中的To、From号码是否与你配置的一致。
  • 查看日志中的详细错误描述,可能存在隐藏的格式问题或账户限制。

5. 用Twilio控制台测试基础功能

使用控制台的Try it Out > Send a SMS工具,直接输入已购买的发送号码和已验证的接收号码发送测试短信:

  • 若控制台发送成功,说明问题出在Spring Boot代码的配置(如账户SID/Auth Token错误、参数拼写错误)。
  • 若控制台发送失败,说明账户或号码验证存在底层问题,需联系Twilio支持。

额外提示

  • 确保项目中配置的Twilio账户SID、Auth Token是生产环境的有效密钥,没有使用测试环境的密钥。
  • 部分地区的号码验证可能存在延迟,重新验证后不要立即测试,等待系统同步完成。

内容的提问来源于stack exchange,提问作者Code-forever

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 22:13:18