Twilio短信显示为likely-SCAM,自定义名称不显示问题求助
问题分析与解决方案
核心问题原因
- FriendlyName≠短信显示名称:你代码里设置的
friendlyName是Twilio控制台内的号码备注,完全不是接收方短信里显示的发件人名称。短信的自定义发件人名称需要用Twilio的Alphanumeric Sender ID,和FriendlyName无关。 - "likely-SCAM"标记诱因:新创建/刚启用的Twilio陌生号码,很容易被运营商或手机安全软件标记为可疑;另外频繁发送雷同内容、短时间批量发送短信,也会触发标记机制,这和你设置自定义名称的操作无关。
修复步骤
1. 正确设置自定义发件人名称
要让接收方看到"myApp",需使用Alphanumeric Sender ID替换号码作为from参数(注意:该功能仅支持部分国家/地区,且无法用于接收回复):
const sentMessage = await client.messages.create({ body: message, from: 'myApp', // 直接填入自定义名称,而非号码 to: 'RECIPIENT_PHONE_NUMBER', });
如果业务需要接收回复,必须使用Twilio号码发送,此时无法显示自定义名称,需重点解决标记问题。
2. 解除"likely-SCAM"标记
- 申请号码白名单:登录Twilio控制台,提交号码的具体使用场景说明,申请解除平台标记。
- 规范短信内容:开头明确标注发送方身份,比如"【myApp】你的验证码为XXX",避免使用敏感词汇。
- 逐步测试发送:先给少量测试号码发送,积累正常发送记录,避免短时间批量发送触发风控。
3. 优化号码掩码逻辑(可选)
你当前代码每次发送都创建新Twilio号码,既浪费资源,还会因频繁新增陌生号码加剧标记风险。建议提前采购一批号码复用,或使用Twilio Proxy服务实现号码掩码,而非重复创建新号码。
修正后的完整代码(使用Alphanumeric Sender ID)
// 初始化Twilio客户端 const accountSid = 'YOUR_TWILIO_ACCOUNT_SID'; const authToken = 'YOUR_TWILIO_AUTH_TOKEN'; const client = twilio(accountSid, authToken); async function sendMessageWithCustomSender(message) { try { // 使用自定义名称发送短信 const sentMessage = await client.messages.create({ body: message, from: 'myApp', to: 'RECIPIENT_PHONE_NUMBER', }); return sentMessage; } catch (error) { console.error('发送失败:', error); throw error; } } const messageToSend = 'Hello, this is a message from myApp!'; sendMessageWithCustomSender(messageToSend) .then((sentMessage) => { console.log('短信SID:', sentMessage.sid); }) .catch((error) => { console.error('发送失败:', error); });
内容的提问来源于stack exchange,提问作者Madhawa
相关产品推荐
相关产品推荐

