泰国短信市场概况
区域设置名称: | 泰国 |
---|---|
ISO 代码: | 頓 |
地区 | 亚洲 |
移动国家代码 (MCC) | 520 |
拨号代码 | +66 |
市场状况:泰国拥有充满活力的移动市场,短信采用率很高,同时还巴拿马 whatsapp 数据有流行的 OTT 消息应用程序,如 LINE 和 WhatsApp。该国三大移动运营商 – AIS、DTAC 和 True Move – 主要服务于 Android 用户群(约占 75% 的市场份额)。虽然 OTT 消息应用程序在个人通信中占主导地位,但短信对于商业通信仍然至关重要,尤其是用于身份验证、通知和营销目的,因为它具有可靠性和普遍覆盖性。
泰国短信的主要功能和能力
泰国提供强大的短信功能,支持串联消息和字母数字有效的酒店营销策略来增加预订量发件人 ID,但不支持双向消息传递,并且 MMS 需要 URL 转换。
双向短信支持
泰国不支持双向短信的 A2P(应用程序到个人)消息传递。企业必须使用单向消息传递进行通信,无法接收收件人的回复。
串联消息(分段短信)
支持:是的,大多数发件人 ID 类型都支持串联,但支持情况可能因使用的特定发件人 ID 而异。
消息长度规则:使用 GSM-7 编码,每段消息标准 160 个字符。
编码注意事项:消息使用 GSM-7 编码拉丁字符(160 个字符)或 UCS-2 编码泰语和特殊字符(每段 70 个字符)。
MMS 支持
MMS 消息会自动转换为带有内嵌 URL 链接的 SMS。发送富媒泰国号码体内容时,系统会生成一个 URL,收件人可以通过该 URL 访问媒体,此 URL 包含在 SMS 消息正文中。最佳做法是使用完整 URL,而不是缩短的 URL,因为 URL 缩短器在泰国被视为禁止内容。
收件人电话号码兼容性
号码可携性
泰国提供号码可携性,允许用户在移动运营商之间切换时保留自己的电话号码。此功能不会对短信传递或路由产生重大影响,因为信息会正确路由到当前运营商。
向固定电话发送短信
在泰国,无法向固定电话号码发送短信。尝试向固定电话号码发送消息将导致 400 响应,错误代码为 21614,该消息不会出现在日志中,也不会从帐户中扣款。
泰国短信合规与监管指南
泰国的短信通信受国家广播和电信委员会 (NBTC) 监管,该委员会对商业短信实施严格的指导方针。《个人数据保护法》 (PDPA) 还规定了企业如何处理客户数据和同意管理。
同意和选择加入
明确同意要求:
- 发送任何营销信息之前必须获得书面或电子同意
- 同意记录必须保存至少 3 个月
- 在选择加入时必须明确说明消息传递的目的
- 同意必须指定客户将收到的消息类型
文档的最佳实践:
- 存储时间戳和同意来源
- 维护同意变更的审计线索
- 对营销列表使用双重选择加入
- 在注册时提供明确的条款和条件
HELP/STOP 和其他命令
- 必须同时支持英语和泰语退出关键字:
- 停止/停止
- 取消/取消
- HELP/ช่วยเหลือ
- 退出确认信息必须使用与退出请求相同的语言发送
- 必须在收到命令后 24 小时内处理
请勿致电/请勿打扰登记
泰国没有设立集中式“禁止致电”登记处,但企业必须:
- 维护自己的抑制名单
- 立即尊重退出请求
- 在收到退出请求后的 24 小时内删除号码
- 定期清理联系人列表以删除不活跃的号码
时区敏感度
- 晚上 9 点至早上 9 点 (ICT – UTC+7) 之间禁止发送营销信息
- 紧急和交易信息不受时间限制
- 策划活动时考虑佛教节日和周末
泰国的电话号码选项和短信发件人类型
字母数字发件人 ID
运营商网络能力:完全支持
注册要求:需要预先注册;2 周的审批流程
发件人 ID 保存:是,显示为已注册
附加要求:
- 必须不超过 11 个字符
- 不能包含特殊字符
- 必须与注册的企业名称一致
长代码
国内与国际:
- 支持国内长代码,但不适用于国际业务
- 不支持国际长代码
发件人 ID 保存:否,国际号码通常会被覆盖 配置时间:对于国际业务, 不适用用例:不推荐用于国际业务
短代码
支持:不适用于国际业务 配置时间:N/A 使用案例:仅供国内实体使用
受限制的短信内容、行业和用例
禁止的内容和行业:
- 赌博和博彩服务
- 成人内容或露骨内容
- 政治信息
- 宗教内容
- 金融贷款招揽
- 管制物质
- 大麻产品
- 与酒精相关的内容
- 枪支和武器
金融服务限制:
- 必须拥有泰国银行贷款相关内容许可证
- 银行/金融信息中禁止使用的 URL
内容过滤
运营商过滤规则:
- URL 缩短服务被自动屏蔽
- 筛选限制行业相关关键词
- 含有垃圾邮件指示的邮件被阻止
避免过滤的最佳实践:
- 仅使用完整长度的注册 URL
- 避免过多标点
- 不要全部使用大写字母
- 保持一致的发件人 ID
- 使用前向运营商注册 URL
在泰国发送短信的最佳做法
信息传递策略
- 尽可能将消息控制在 160 个字符以内
- 包含明确的号召性用语
- 始终使用注册的发件人 ID
- 避免在交易信息中使用促销语言
发送频率和时间
- 每位收件人每天只能收到一条促销信息
- 尊重安静时间(晚上 9 点至早上 9 点)
- 避免在重大节假日期间发送
- 分散批量活动以防止网络拥塞
本土化
- 支持泰语和英语内容
- 使用正确的泰语字符编码 (UCS-2)
- 考虑消息内容中的文化敏感性
- 提供两种语言的客户支持
退出管理
- 24 小时内处理退出
- 发送退出确认
- 在整个活动中维护统一的抑制列表
- 定期审核选择退出合规性
测试和监控
- 在所有主要运营商(AIS、DTAC、True Move)上进行测试
- 监控承运商的运送费率
- 跟踪退出率和模式
- 定期测试选择退出功能
- 监控 URL 点击率以确保合规性
泰国的 SMS API 集成
Twilio
Twilio 通过其 REST API 为泰国提供强大的短信功能。身份验证使用您的帐户 SID 和身份验证令牌,并支持预先注册的发件人 ID。
import twilio from 'twilio';
// Initialize client with your credentials
const client = twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// Function to send SMS to Thailand
async function sendThaiSMS(
to: string,
message: string,
senderId: string
) {
try {
// Ensure proper formatting for Thailand numbers
const formattedNumber = to.startsWith('+66') ? to : `+66${to.substring(1)}`;
const response = await client.messages.create({
body: message,
from: senderId, // Must be pre-registered
to: formattedNumber,
// Optional parameters for delivery tracking
statusCallback: 'https://your-webhook.com/status'
});
console.log(`Message sent successfully: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
辛奇
Sinch 提供短信服务,支持泰语和预注册发件人 ID。其 API 需要 API 令牌认证。
import { SinchClient } from '@sinch/sdk';
class ThaiSMSService {
private client: SinchClient;
constructor() {
this.client = new SinchClient({
apiToken: process.env.SINCH_API_TOKEN,
projectId: process.env.SINCH_PROJECT_ID,
region: 'APAC' // Specific for Thailand
});
}
async sendMessage(
to: string,
message: string,
senderId: string
) {
try {
const response = await this.client.sms.send({
to: [to],
from: senderId,
body: message,
encoding: 'UCS2', // For Thai characters
delivery_report: 'summary'
});
return response;
} catch (error) {
console.error('Sinch SMS Error:', error);
throw error;
}
}
}
信息鸟
MessageBird 提供短信 API 访问,并特别支持泰国的法规和字符编码。
import messagebird from 'messagebird';
class ThaiMessageBirdService {
private client: any;
constructor() {
this.client = messagebird(process.env.MESSAGEBIRD_API_KEY);
}
sendSMS(
recipient: string,
message: string,
senderId: string
): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: senderId,
recipients: [recipient],
body: message,
datacoding: 'unicode', // For Thai language support
type: 'flash' // Optional for urgent messages
}, (err: any, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
普利沃
Plivo 的 API 支持泰国短信,具有处理泰语和合规要求的功能。
import plivo from 'plivo';
class ThaiPlivoService {
private client: any;
constructor() {
this.client = new plivo.Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
}
async sendSMS(
to: string,
message: string,
senderId: string
) {
try {
const response = await this.client.messages.create({
src: senderId,
dst: to,
text: message,
url_strip_query_params: false, // Important for URL tracking
powerpack_uuid: process.env.PLIVO_POWERPACK_ID // Optional for better routing
});
return response;
} catch (error) {
console.error('Plivo Error:', error);
throw error;
}
}
}
API 速率限制和吞吐量
- 默认速率限制因提供商而异(通常为每秒 1-10 条消息)
- 实现重试逻辑的指数退避算法
- 使用队列系统(Redis、RabbitMQ)进行大容量发送
- 尽可能批量发送消息(每个请求最多 100 个收件人)
错误处理和报告
- 使用 Winston 或类似工具实现全面日志记录
- 通过 webhook 跟踪送达收据
- 监控常见错误代码:
- 4xx:客户端错误(无效号码、发件人 ID 问题)
- 5xx:服务器错误(退避重试)
- 存储消息元数据以进行故障排除。