马来西亚短信市场概览
区域设置名称: | 马来西亚 |
---|---|
ISO 代码: | 我的 |
地区 | 亚洲 |
移动国家代码 (MCC) | 502 |
拨号代码 | +60 |
市场状况:马来西亚拥有成熟的移动市场,短信采尼日利亚 whatsapp 数据用率很高,同时还有 WhatsApp 和微信等流行的 OTT 消息应用程序。该国的主要移动运营商包括 Maxis、Celcom 和 Digi,主要服务于基于 Android 的用户群(约 80% Android 和 20% iOS)。短信仍然是商业通信的重要渠道,尤其是用于身份验证、通知和营销信息。
马来西亚短信的主要功能和能力
马来西亚提供全面的短信功能,支持双向消息传递、消息串联以及严格的商业消息传递监管合规要求。
双向短信支持
是的,马来西亚完全支持双向短信通信。企业可以与客户进行双向消息传递,但必须遵守当地关于同意和退出机制的法规。
串联消息(分段短信)
支持:是的,大多数运营商都支持串联,但 Digi Malaysia 是个例外,它单独发送拆分消息。
消息长度规则:使用 GSM-7 编码的单条短信标准为 160 个字符,Unicode(UCS-2)为 70 个字符。
编码注意事项:GSM-7 支持基本拉丁字符,而 UCS-2 是包括马来语字符在内的本地语言支持所必需的。
MMS 支持
MMS 消息会自动转换为带有内嵌 URL 链接的 SMS。根据 2024 年 9 月 1 日生效的最新法规,除非特别列入白名单,否则消息中的 URL 将被屏蔽,这给马来西亚市场的 MMS 交付带来了挑战。
收件人电话号码兼容性
号码可携性
是的,马来西亚提供号码可携性。
虽然这对交付没有太大影响,但运营商会通过马来西亚的移动意大利电话号码号码可携性 (MNP) 系统自动处理路由。
向固定电话发送短信
不可以,马来西亚无法向固定电话号码发送短信。
尝试向固定电话号码发送短信将导致发送失败,并出现 400 响应错误(代码 21614),并且不会产生任何费用。
马来西亚短信合规与监管指南
马来西亚通信与多媒体委员会 (MCMC) 负责监管短信通信,并执行严格的规定以保护消费者。所有企业在处理客户数据和通信时都必须遵守《2010 年个人数据保护法》(PDPA)。
同意和选择加入
发送任何营销或促销信息之前必须获得明确同意。最佳做法包括:良好的关键词研究是程序化 seo 有效性的基础
-
-
- 保留关于何时以及如何获得同意的清晰记录
- 对营销名单使用双重选择加入流程
- 在注册时提供明确的条款和条件
- 指定客户将收到的消息类型
- 记录同意时间戳和来源
-
HELP/STOP 和其他命令
-
-
- 所有短信活动必须支持标准退出关键字:STOP、BATAL、HENTI
- HELP/BANTUAN 命令必须以英语和马来语提供信息
- 这些命令的响应应该是即时的和免费的
- 关键字必须不区分大小写,且适用于两种语言
-
请勿致电/请勿打扰登记
马来西亚根据《个人资料保护法》设立了“禁止致电” (DNC) 注册处。为确保合规,请执行以下操作:
-
-
- 在发送营销信息之前,请对照 DNC 注册表检查号码
- 维护一个内部禁止拨打号码列表
- 在收到退出请求后的 24 小时内从营销列表中删除号码
- 定期更新和清理营销数据库
-
时区敏感度
-
-
- 马来西亚时间晚上 8:00 至早上 8:00 之间禁止发送营销信息
- 可全天候发送交易和紧急消息
- 考虑斋月和其他宗教节日期间的文化敏感性
-
马来西亚的电话号码选项和短信发件人类型
字母数字发件人 ID
运营商网络功能:不支持直接使用
注册要求:N/A – 不支持字母数字发件人 ID
发件人 ID 保存:所有发件人 ID 均被运营商认可的数字发件人 ID 覆盖
长代码
国内与国际:
-
-
- 国内:支持200条/天的消息限制
- 国际:支持无每日限制
-
发件人ID保存:
-
-
- 国内:保留原始发件人 ID
- 国际:用运营商批准的随机数字 ID 覆盖
-
配置时间:立即至 24 小时
用例:国内 P2P 消息传递、国际 A2P 消息传递
短代码
支持:可通过运营商认可的渠道提供
配置时间:4-6 周审批
使用案例:大批量营销、2FA、警报
受限制的短信内容、行业和用例
禁止的内容和行业:
-
-
- 赌博和博彩
- 成人内容
- 政治信息
- 宗教内容
- 管制物质
- 大麻产品
- 与酒精相关的内容
- 枪支和武器
- 放贷/贷款服务
-
内容过滤
已知运营商过滤规则:
-
-
- URL 和超链接被屏蔽
- 邮件正文中的电话号码已被屏蔽
- 个人信息请求被过滤
- 没有“RM 0.00”前缀的消息将被屏蔽
-
避免阻塞的提示:
-
-
- 始终包含“RM 0.00”前缀
- 在消息内容中包含品牌名称
- 避免使用 URL 缩短器
- 保持内容清晰明了
- 对于敏感行业请使用认可的模板
-
在马来西亚发送短信的最佳做法
信息传递策略
-
-
- 尽可能将消息控制在 160 个字符以内
- 包含明确的号召性用语
- 慎重使用个性化标记
- 保持一致的品牌声音
-
发送频率和时间
-
-
- 将每个收件人每月的营销信息限制为 2-4 条
- 遵守时间限制(上午 8 点至晚上 8 点)
- 考虑马来西亚公共假期
- 间隔发送消息以避免收件人不知所措
-
本土化
-
-
- 支持马来语和英语
- 根据用户偏好使用适当的语言
- 考虑信息内容中的文化差异
- 提供两种语言的客户支持
-
退出管理
-
-
- 24 小时内处理退出
- 维护集中退出数据库
- 通过最后一条消息确认退出
- 切勿向选择退订的号码发送营销信息
-
测试和监控
-
-
- 在马来西亚所有主要运营商上进行测试
- 监控承运商的运送费率
- 跟踪退出率和模式
- 按消息类型分析参与度指标
- 定期对消息内容进行 A/B 测试
-
马来西亚的 SMS API 集成
Twilio
Twilio 提供强大的 SMS API,并特别支持马来西亚法规。集成需要 Twilio 控制台的帐户 SID 和 Auth Token。
import { Twilio } from 'twilio';
// Initialize Twilio client with environment variables
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
async function sendSMSToMalaysia() {
try {
// Note: RM 0.00 prefix and brand name are required for Malaysia
const message = await client.messages.create({
body: 'RM 0.00 CompanyName: Your verification code is 123456',
from: process.env.TWILIO_PHONE_NUMBER,
to: '+60123456789' // Malaysian number in E.164 format
});
console.log(`Message sent successfully: ${message.sid}`);
} catch (error) {
console.error('Error sending message:', error);
}
}
辛奇
Sinch 在马来西亚提供直接运营商连接,并支持当地法规和格式要求。
import { SinchClient } from '@sinch/sdk';
const sinch = new SinchClient({
servicePlanId: process.env.SINCH_SERVICE_PLAN_ID,
apiToken: process.env.SINCH_API_TOKEN
});
async function sendSMSViaSinch() {
try {
const response = await sinch.messages.send({
from: process.env.SINCH_SENDER_ID,
to: ['+60123456789'],
// Include required RM 0.00 prefix and brand name
body: 'RM 0.00 CompanyName: Welcome to our service!',
delivery_report: 'summary'
});
console.log('Message batch ID:', response.id);
} catch (error) {
console.error('Sinch API error:', error);
}
}
信息鸟
MessageBird 通过马来西亚运营商连接提供企业级短信功能。
import { MessageBird } from 'messagebird';
const messagebird = MessageBird(process.env.MESSAGEBIRD_API_KEY);
interface SMSResponse {
id: string;
status: string;
recipients: {
totalCount: number;
totalSentCount: number;
};
}
async function sendSMSViaMessageBird(): Promise<SMSResponse> {
return new Promise((resolve, reject) => {
messagebird.messages.create({
originator: 'CompanyName',
recipients: ['+60123456789'],
body: 'RM 0.00 CompanyName: Your account has been activated',
}, (err, response) => {
if (err) {
reject(err);
return;
}
resolve(response);
});
});
}
普利沃
Plivo 为马来西亚提供可靠的短信传递服务,并支持当地的合规要求。
import { Client } from 'plivo';
const client = new Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
async function sendSMSViaPlivo() {
try {
const response = await client.messages.create({
src: process.env.PLIVO_SENDER_ID, // Will be overwritten with local shortcode
dst: '+60123456789',
text: 'RM 0.00 CompanyName: Thank you for your purchase!',
// Optional parameters for delivery tracking
url: 'https://your-callback-url.com/status',
method: 'POST'
});
console.log('Message UUID:', response.messageUuid);
} catch (error) {
console.error('Plivo API error:', error);
}
}
API 速率限制和吞吐量
-
-
- 国内长代码:每个号码每天 200 条消息
- 短代码:每秒最多 100 条消息
- 国际航线:因供应商而异
-
大规模发送策略:
-
-
- 实现队列系统(Redis/RabbitMQ)
- 尽可能使用批处理 API
- 监控吞吐量并调整发送速率
- 实施指数退避重试
-
错误处理和报告
-
-
- 记录所有 API 响应和交付收据
- 监控常见错误代码:
- 21614:无效的固定电话号码
- 30007:检测到被阻止的内容
- 30008:超出允许时间的消息
- 实施 webhook 处理程序以更新配送状态
- 设置异常错误率的自动警报
-
回顾和其他资源
关键要点
-
-
- 合规重点:
- 包含“RM 0.00”前缀
- 遵守时间限制(上午 8 点至晚上 8 点)
- 内容中没有 URL 或电话号码
- 维护适当的退出机制
- 技术要求:
- 使用 E.164 数字格式
- 实施适当的错误处理
- 监控配送率
- 支持英语和马来语
- 合规重点:
-
下一步
-
- 查看 MCMC 的短信指南
- 咨询法律顾问进行合规性审查。