这是马来西亚短信群发里最常见、也最少有人老实解释的问题。这篇讲清楚到底发生了什么。
一条短信的生命里有三个独立的事件,而大多数后台把它们混成同一个绿色对勾:
| 阶段 | 能证明什么 | 不能证明什么 |
|---|---|---|
| 已提交 | 你的平台收下了并扣了你的钱 | 运营商那边的任何事 |
| 运营商已接收 | Maxis/CelcomDigi/U Mobile 收下了 | 手机那边的任何事 |
| 已送达(DLR) | 网络回报了成功 | 有人真的看到了 |
很多聚合商把第 1 或第 2 阶段就报成「已送达」。所以一个全绿的后台,跟一条都没到,是可以同时成立的。如果你的平台拿不出「已发送」和「已送达」两个不一样的数字,那你看到的就不是真实送达数据。
这一条要放在所有排查动作的最前面,因为如果答案是「国外」,下面五个原因你查了也白查——问题不在文案、不在名单,在通道本身。
马来西亚运营商对境外来的国际短信过滤得远比本地严。中文互联网上大量「马来西亚短信发不出去怎么办」的文章,最后给出的结论其实是同一句:别用境外虚拟号,换成 +60 开头的本地通道。那些文章说得没错——只是它们自己卖的就是境外通道。
| 境外/国际通道 | 马来西亚本地通道 | |
|---|---|---|
| 短信从哪里进网 | 从国外经国际网关转入 | 直接从本地运营商发出 |
| 过滤强度 | 高,且规则不公开 | 按本地商务规则走 |
| 发送方显示 | 常见随机长号或境外号段 | 已注册短码 |
| 开户要求 | 多要企业资质、内容模板报备 | 邮箱加密码即可开始 |
| 计价货币 | 人民币/美元 | 令吉(RM) |
| 失败时能查到什么 | 常常只能拿到一句「已提交」 | 可逐条对账,提交失败的退回额度 |
怎么判断自己现在走的是哪种:看三样东西——后台是不是用人民币或美元计价;开户时有没有被要求提交「短信模板」等审核;收件人手机上显示的发送方是不是一串陌生的长号码。三条里中了任意一条,你多半在走国际通道。
HantarSMS 走的是马来西亚本地注册短码,直连 Maxis、CelcomDigi、U Mobile、YES、Unifi,按令吉计价。这不代表本地通道就百分百送达(下面五个原因照样会发生),但它把「整批被国际网关吃掉」这一类失败从等式里拿掉了。
如果你的短信显示的是品牌名(比如 MYSHOP),而这个名字从未在马来西亚运营商那里注册过,网络可以直接静默丢弃。自从全国打击诈骗短信以来,运营商对未注册的字母发送方名称收紧了非常多。不报错、不退费,你照样被扣钱。
解法:改走已注册的短码,或者
注册你自己的 Sender ID。
运营商跑关键词和模式匹配。含短链接、某些金融词汇、或者措辞像已知诈骗模板的短信,会在网络层被丢掉,跟你用哪家平台无关。
解法:用完整域名不要用短链,避开「立即」「马上验证」这类紧迫措辞,放量之前先用真实文案付费小量测试。
如果你做的是借贷、外汇、加密货币、账款催收这类天然容易触发过滤的行业,
偏门行业的短信文案该怎么写那篇讲得更细。
已停用、携号转网到你的通道不覆盖的网络、不在服务区,或者干脆是被填进手机号栏位的固话。老的营销名单每年大约衰减 20–30%。
解法:清洗名单,把反复失败的号码剔掉,不要对从来没成功过的号码一遍遍重发。
Android 和 iOS 都会把疑似垃圾短信归到单独的文件夹。短信确实送达了,只是收件人从来没看到通知。这一层在任何送达报告里都是不可见的。
解法:技术上无解。只发给真正同意接收的人、发真正相关的内容,是唯一有效的办法。
如果含中文、淡米尔文或 emoji 的短信被当成 GSM-7 而不是 Unicode 发出去,所有非拉丁字符到手机上都会变成 ?。短信技术上是送达了,但读不了。这是平台的配置 bug,不是网络问题——而且比你以为的常见得多。
解法:大量买额度之前,先用你真正要用的语言给自己发一条。
这是最容易被误判成「平台不稳」的现象。真实情况是:Maxis、CelcomDigi、U Mobile、YES、Unifi 是五套各自独立的过滤规则和审批流程。同一条文案在一家网络畅通、在另一家被丢,完全正常。
最典型的场景是 Sender ID:品牌名要逐家运营商分别审批,部分通过是常态。结果就是你的短信在某些网络能发、某些不能——而后台只会给你一个笼统的失败率,不会告诉你是按网络分布的。
怎么确认:把失败的号码按前缀分个组。马来西亚号段和运营商的对应关系因携号转网已经不可靠,但失败集中在某一两个前缀上仍是强信号。真要定位,最干净的办法是各家网络准备一个自己的测试号,同一条文案同时发,看谁没到。
如果你前一批发得好好的,某一批开始大面积失败,而文案和名单都没变,那多半不是内容问题,是吞吐问题。短时间内灌入远超平时的量,会触发通道侧的限流甚至临时封禁。
具体的阈值不是一个可以写死在网页上的数字——它随通道类型、账号历史、当下的网络负载变。国际通道上这类限制通常最紧(每小时几十到上百条这种量级的说法都有),本地注册短码要宽松得多,但也不是无限的。重点是:任何跟你拍胸脯说「无限量随便发」的平台,要么在骗你,要么在把你往会被封的路上带。
解法:第一次放量前先跟平台确认你这个账号当前的实际吞吐上限;大批量分批发而不是一次性灌进去;量级要往上跳的时候提前打个招呼,而不是发完了才来问为什么失败。
?每条测试就几分钱。在花钱发一万条之前把这五步做完,是短信营销里回报率最高的一个习惯。
跑完上面五步之后,用这张表把结果对号入座。
| 你看到的症状 | 最可能的原因 | 怎么确认 |
|---|---|---|
| 全部失败,一条都没到 | 通道/账号层面的问题,多半是走了国际通道或被限流 | 先发一条纯英文给自己;查后台计价货币与发送方号码形态 |
| 纯文本能到,营销文案到不了 | 内容被关键词过滤 | 逐段删减文案重发,定位是哪一句触发的 |
| 某些网络到、某些不到 | 逐家运营商规则差异,常见于未全部通过的 Sender ID | 各家网络各准备一个测试号,同一文案同时发 |
中文变成一串 ? | 编码发成了 GSM-7 而不是 Unicode | 用实际语言给自己发一条,看手机上的显示 |
| 之前一直正常,这批突然大面积失败 | 撞了吞吐限速,或名单质量下降 | 对比这批与上批的发送速率和名单来源 |
| 后台全绿,客户仍说没收到 | 已送达但落进了手机的垃圾短信文件夹 | 让客户翻一下垃圾短信;换一个自己的号码复现 |
| 失败率随时间缓慢爬升 | 名单自然衰减(停机、换号) | 把连续多次失败的号码单独拉出来看占比 |
没有人能保证送达——那是运营商说了算,而且他们不解释。平台能做的是对你老实:把「已提交」和「已送达」分成两个数字给你看,没发出去的退钱,在你付钱之前就告诉你内容大概率会被过滤,以及让你能便宜地先测。