首页 » 博客 » 泰国短信最佳实践、合规性和功能

泰国短信最佳实践、合规性和功能

泰国短信市场概况

区域设置名称: 泰国
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:服务器错误(退避重试)
  • 存储消息元数据以进行故障排除。
滚动至顶部