使用Twilio发送SMS遇到问题求助(巴西地区免费账户)
Twilio 巴西短信发送及Java代码问题解答
1. 美国Twilio号码能否向巴西本地号码发送SMS?
- 免费账户的美国Twilio号码可以向巴西本地号码发送SMS,但需注意以下限制:
- 免费账户仅能向已验证的号码发送短信,需先在Twilio控制台将目标巴西号码添加到「已验证号码」列表中
- 巴西对国际短信有监管要求,免费账户只能发送测试/验证类内容,禁止营销类消息,且存在发送频率限制
- 不需要使用同国家号码,但目标号码必须遵循E.164标准格式(以
+55开头,后跟区号和本地号码,例如+55119XXXXXXXXX)
2. Java开发的配置要求
仅添加Twilio的Maven依赖即可,无需额外安装项,但要确保:
- 使用官方最新稳定版依赖,避免版本兼容问题
ACCOUNT_SID和AUTH_TOKEN完全匹配Twilio控制台中的账户信息,无拼写错误
代码崩溃问题排查
你的代码存在明显错误,导致create()方法执行失败:
- 初始化参数错误:
Twilio.init()仅需传入ACCOUNT_SID和AUTH_TOKEN,你多传了一个重复的ACCOUNT_SID,会导致初始化失败 - 号码参数为空:目标巴西号码和Twilio号码的参数值为空,需填充符合E.164标准的完整号码
- 缺少异常捕获:
create()方法会抛出检查型异常,未捕获会直接崩溃,无法查看具体错误原因
修正后的代码示例
import com.twilio.Twilio; import com.twilio.rest.api.v2010.account.Message; import com.twilio.type.PhoneNumber; public class TwilioSmsTest { // 替换为你的Twilio账户信息 private static final String ACCOUNT_SID = "你的ACCOUNT_SID"; private static final String AUTH_TOKEN = "你的AUTH_TOKEN"; public static void main(String[] args) { Twilio.init(ACCOUNT_SID, AUTH_TOKEN); try { Message message = Message.creator( new PhoneNumber("+55119XXXXXXXXX"), // 目标巴西号码 new PhoneNumber("你的美国Twilio号码(+1开头)"), "HI TEST!" ).create(); System.out.println(message.getSid()); } catch (Exception e) { e.printStackTrace(); // 打印错误详情,便于排查问题 } } }
内容的提问来源于stack exchange,提问作者Israel S. Carlos
相关产品推荐
相关产品推荐

