阿里云群发短信通知的失败问题排查

更新日期: 2025-05-28 阅读次数: 197 字数: 821 分类: 运维

在开发的大赛报名系统,截至尾声,组织方希望群发一条短信通知所有参赛队的队长, 赶紧提交作品,不要挤在最后一天,防止人多导致系统卡顿。毕竟大量的文件及视频上传。

但是,众所周知的原因,现在发送验证码短信的成功率都达不到 98%,特别是贵州移动的手机号。 怎么都收不到短信验证码。

我担心群发短信,会不会也有类似的问题?

更难的地方是,组织方给出的短信模板是 180 多个字符,相当于要发送 3 条短信才能发送完整。 我担心的是:

  1. 成本太高。预留的额度不够
  2. 文字越多,触发敏感词被拦截的概率越高。

于是,用我仅有的两个报备成功的签名进行群发测试,结果如下:

  1. 签名一【XXX】,这个短信签名(目前用于大赛注册验证码),群发测试百分百失败(电信,移动)。
  2. 签名二【YYYYYYY】,这个长的签名,类似于公司全称(14个字,注意签名也算短信文本长度),移动的手机号测试了两个可以成功,但是电信的百分百失败。
  3. 精简了一下群发短信的文案内容,从 187 个字,精简到 80 个字,为了规避意外触发敏感词,被拦截的可能。测试结果同2,电信还是百分百失败,即便短信签名通过了运营商的备案。

跟组织方讨论了一下解决方案,目前的想法是:

  1. 组织方使用他们那边短信平台群发电信和联通的手机号
  2. 我这边使用阿里云的短信平台群发移动的手机号
  3. 再使用邮件群发一遍

导出群发手机号列表

我用 golang 写了个接口,将没有提交作品的参赛队队长的手机号导出成 Excel 文件, 并且取出手机号的前三位来判断运营商。一并导出到 Excel 文件中。

然后,按照运营商列排序即可,批量选择指定运营商的手机号,在阿里云短信服务后台,使用群发助手手动发送即可。

群发策略

手动群发的策略是:

  1. 先发送 10 测试短信,看看是否能成功。成功率 50% 😓
  2. 又发送了 30 个,成功率 100%。可能是少量多批,成功率能高一些
  3. 又试了 60 个,成功率 95% 以上。
  4. 最后 574 个移动号码发送完,成功率 94% 以上。

感想

现在的短信管控越来越严格,严格到了脑残的地步。

通知短信就算了,验证码短信都能被拦截,导致用户体验极差。

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式