使用Laravel+Twilio发送含链接短信失败求助
问题:Laravel 集成 Twilio 发送含链接短信无法送达
用户代码截图:
求助内容:使用PHP Laravel框架通过Twilio发送包含链接的短信时,短信无法送达,请求解决。
说明:
- Twilio账户为付费账户
- 使用Laravel框架
- 使用的包:
composer require twilio/sdk
排查及解决步骤
- 核对Twilio配置信息
确认.env文件中参数准确无误:
TWILIO_SID=你的账户SID TWILIO_AUTH_TOKEN=你的认证令牌 TWILIO_FROM_NUMBER=你的Twilio号码(需带国家码,如+1xxxxxx)
同时确保config/services.php中已正确配置:
'twilio' => [ 'sid' => env('TWILIO_SID'), 'auth_token' => env('TWILIO_AUTH_TOKEN'), 'from' => env('TWILIO_FROM_NUMBER'), ],
- 检查短信内容合规性
- 链接必须是完整的HTTPS/HTTP地址,避免使用未备案短链(易被运营商拦截)
- 规避敏感词汇,防止触发Twilio或运营商的垃圾短信检测机制
- 控制内容长度,单条短信超160字符会自动拆分,确保拆分后内容仍可正常解析
- 测试基础短信发送
先发送纯文本短信验证集成是否正常:
use Twilio\Rest\Client; $sid = config('services.twilio.sid'); $token = config('services.twilio.auth_token'); $twilio = new Client($sid, $token); $message = $twilio->messages ->create( '+接收方号码', // 目标号码需带国家码 [ 'from' => config('services.twilio.from'), 'body' => '测试短信内容' ] ); dd($message->sid); // 查看返回的消息SID,确认是否提交成功
若纯文本短信能发送,说明问题出在含链接的内容;若仍失败,检查目标号码是否已验证(付费账户未验证号码可能无法接收)、账户权限是否正常。
- 查看Twilio后台日志
登录Twilio控制台,进入「Monitor」->「Logs」->「Messages」,查看失败短信的错误码:
30003:运营商拦截,需调整内容或使用官方短链21614:目标号码无效,核对号码格式21606:内容违规,修改短信话术
- 优化链接展示方式
若链接被拦截,可使用Twilio官方短链服务,或把链接放在短信末尾、增加前缀说明(如「点击查看详情:https://xxx」)降低被拦截概率
内容的提问来源于stack exchange,提问作者Hazem Ayad
相关产品推荐
相关产品推荐

