在开发的大赛报名系统,截至尾声,组织方希望群发一条短信通知所有参赛队的队长, 赶紧提交作品,不要挤在最后一天,防止人多导致系统卡顿。毕竟大量的文件及视频上传。
但是,众所周知的原因,现在发送验证码短信的成功率都达不到 98%,特别是贵州移动的手机号。 怎么都收不到短信验证码。
我担心群发短信,会不会也有类似的问题?
更难的地方是,组织方给出的短信模板是 180 多个字符,相当于要发送 3 条短信才能发送完整。 我担心的是:
- 成本太高。预留的额度不够
- 文字越多,触发敏感词被拦截的概率越高。
于是,用我仅有的两个报备成功的签名进行群发测试,结果如下:
- 签名一【XXX】,这个短信签名(目前用于大赛注册验证码),群发测试百分百失败(电信,移动)。
- 签名二【YYYYYYY】,这个长的签名,类似于公司全称(14个字,注意签名也算短信文本长度),移动的手机号测试了两个可以成功,但是电信的百分百失败。
- 精简了一下群发短信的文案内容,从 187 个字,精简到 80 个字,为了规避意外触发敏感词,被拦截的可能。测试结果同2,电信还是百分百失败,即便短信签名通过了运营商的备案。
跟组织方讨论了一下解决方案,目前的想法是:
- 组织方使用他们那边短信平台群发电信和联通的手机号
- 我这边使用阿里云的短信平台群发移动的手机号
- 再使用邮件群发一遍
导出群发手机号列表
我用 golang 写了个接口,将没有提交作品的参赛队队长的手机号导出成 Excel 文件, 并且取出手机号的前三位来判断运营商。一并导出到 Excel 文件中。
然后,按照运营商列排序即可,批量选择指定运营商的手机号,在阿里云短信服务后台,使用群发助手手动发送即可。
群发策略
手动群发的策略是:
- 先发送 10 测试短信,看看是否能成功。成功率 50% 😓
- 又发送了 30 个,成功率 100%。可能是少量多批,成功率能高一些
- 又试了 60 个,成功率 95% 以上。
- 最后 574 个移动号码发送完,成功率 94% 以上。
感想
现在的短信管控越来越严格,严格到了脑残的地步。
通知短信就算了,验证码短信都能被拦截,导致用户体验极差。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式