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

使用Twilio+Node.js发短信遇21211错误:收件人号码无效排查

解决Twilio Error 21211: The 'To' number is not a valid phone number

作为刚上手Twilio的开发者,这个错误大概率是踩了试用账户的限制坑,结合你的情况,我整理了几个必查的核心点:

1. 你的「From」号码用错了!

Twilio试用账户要求发送短信的from必须是Twilio分配给你的试用电话号码,绝对不能用你自己的真实手机号!

  • 登录Twilio控制台,找到「Phone Numbers」→「Manage」→「Active Numbers」,复制那里给你的号码(格式是+1开头的),替换代码里的+15593134060。
  • 如果你硬要用自己的号码当发送方,得先升级成付费账户并完成号码验证(试用阶段完全不支持)。

2. 「To」号码必须是Twilio已验证的号码

试用账户只能给你提前在Twilio控制台验证过的手机号发送短信,哪怕是发给你自己也得走这一步:

  • 去Twilio控制台的「Phone Numbers」→「Manage」→「Verified Caller IDs」,点击「Add a new Caller ID」,输入你的手机号并完成验证(Twilio会发验证码给你)。
  • 朋友的号码也得先添加到验证列表里,不然试用账户根本没法发送。

3. 号码格式的细节问题

你的代码里用了'+1' + recipient,得确保recipient是纯数字字符串,不能包含括号、横杠、空格这些字符。比如用户输入(555)123-4567,拼接后会变成+1(555)123-4567,这就不符合Twilio的格式要求了。
可以加一段代码清洗号码:

// 清洗recipient,只保留数字字符
const cleanedRecipient = recipient.replace(/\D/g, '');
// 再进行拼接使用
to: '+1' + cleanedRecipient

额外注意事项

最后再检查两个小细节:

  • 确认你的accountSid和authToken是完全正确的(虽然你打码了,但要确保复制的时候没漏字符或多打空格)。
  • 别把to和from设成同一个号码!Twilio不允许试用账户给自己的试用号码发短信(哪怕是验证过的),你得用验证过的个人手机号当to,Twilio试用号当from。

按照上面的步骤调整后,应该就能解决这个错误了。

内容的提问来源于stack exchange,提问作者hongkongbboy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:42:41