Your SMS says "delivered".
Nobody received it.

This is the most common and least honestly explained problem in Malaysian bulk SMS. Here is what is actually happening.

First, understand what a delivery report actually means

There are three separate events in the life of an SMS, and most dashboards blur them into one green tick:

StageWhat it provesWhat it does not prove
SubmittedYour provider accepted the message and billed youNothing about the telco
Accepted by operatorMaxis/CelcomDigi/U Mobile took the messageNothing about the handset
Delivered (DLR)The network reported successThat a human actually saw it

Many aggregators report stage 1 or 2 as "delivered". So a green dashboard is compatible with zero messages arriving. If your provider cannot show you a number that differs between "sent" and "received", you are not looking at real delivery data.

The five real causes, in order of how often we see them

1. Unregistered alphanumeric sender ID

If your messages show a brand name as the sender (for example MYSHOP) and that name was never registered with the Malaysian operators, the network can silently drop it. Since the national push against scam SMS, operators have become far stricter about unregistered alphanumeric senders. No error is returned. You are still billed.
Fix: send over a registered shortcode, or register your own sender ID.

2. Content-based filtering

Operators run keyword and pattern filters. Messages containing URL shorteners, certain financial terms, or wording that resembles known scam templates get dropped at the network layer regardless of who your provider is.
Fix: use your full domain instead of a shortener, avoid urgency phrasing ("act now", "verify immediately"), and test the exact wording in a small paid batch before scaling.

3. The number is not reachable

Deactivated, ported to a network your route does not cover, out of coverage, or a landline that was typed into a mobile field. Old marketing lists decay roughly 20–30% per year.
Fix: clean your list, remove anything that has failed repeatedly, and stop re-sending to numbers that never once delivered.

4. Handset-level spam filtering

Android and iOS both file suspected spam into a separate folder. The message was delivered — the recipient simply never saw a notification. This is invisible in every delivery report that exists.
Fix: nothing technical will solve this. Sending relevant messages to people who opted in is the only real defence.

5. Encoding sent wrong

If a message containing Chinese, Tamil or emoji is sent as GSM-7 instead of Unicode, every non-Latin character arrives as ?. The message was technically delivered, but it is unreadable. This is a provider-side configuration bug, not a network problem — and it is more common than you would expect.
Fix: send yourself one message in the exact language you plan to use, before you buy credit in bulk.

How to diagnose your own case in ten minutes

  1. Send one message to your own number with plain English text. Did it arrive?
  2. Send the same text in the language you actually use. Readable, or full of ?
  3. Send to a number on a different network (Maxis vs CelcomDigi vs U Mobile).
  4. Send your real campaign wording to yourself. If plain text arrives but your campaign wording does not, you have a content filtering problem, not a delivery problem.
  5. Check your phone's spam folder before concluding anything.

Each test costs a few sen. Doing all five before spending on a campaign of 10,000 messages is the single highest-return habit in SMS marketing.

What you should expect from a provider

Nobody can guarantee delivery — operators make that call and they do not explain themselves. What a provider can do is be straight with you: show submitted and received as separate numbers, refund what never went out, tell you before you pay if your content is likely to be filtered, and let you test cheaply first.

Test it on your own phone, free

We load free trial credit so you can run all five tests above before spending anything.