促销短信发出 5000 条,回执显示 1200 条被拦截,状态码 MK:0005。同一批文案把「最优惠」改成「优惠」后重发,拦截降到 80 条。乍看像缓存或者权限的锅,追下去往往不是。
grep -nE "最|第一|唯一|顶级|绝对" template.txt python check_words.py --template template.txt
追下去是这么回事:运营商对营销短信做内容过滤,绝对化用语和金融类词汇命中就拦。模板里带了「最」「第一」这类词,系统直接判定违规。发送前没有做敏感词预检。
「营销短信拦截」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
具体做法是,建一份敏感词表 发送前先扫一遍;营销短信走专用通道 别和验证码混用;文案里去掉绝对化用语 保留可核实的表述;被拦的回执单独统计 按状态码归类。
验收就看一点,改完文案重发,拦截率从 24% 降到 2% 以下,回执状态码里不再出现 MK:0005。
