首页 » 博客 » 在柬埔寨发送短信的最佳做法

在柬埔寨发送短信的最佳做法

信息传递策略

  • 尽可能将消息控制在 160 个字符以内
  • 包含明确的号召性用语
  • 使用收件人姓名或相关详细信息个性化消息
  • 在各个信息中保持品牌的一致性

发送频率和时间

  • 每位收件人每周最多可收到 2-3 条消息
  • 尊重柬埔寨的节日
  • 在工作时间安排活动
  • 分散批量发送以避免网络拥塞

本土化

  • 支持高棉语和英语 柬埔寨 whatsapp 数据
  • 使用适合高棉文字的字符编码
  • 在信息内容中考虑文化背景
  • 提供语言偏好选项

退出管理

  • 24 小时内处理退出
  • 发送退出确认信息
  • 维护更新的禁止列表
  • 定期审核退出流程

测试和监控

  • 在所有主要运营商上测试消息
  • 监控承运商的运送费率
  • 跟踪参与度指标
  • 定期测试选择退出功能

柬埔寨的 SMS API 集成

Twilio

Twilio 提供强大的 SMS API,全面支持柬埔寨。集no brainer 的圣诞前夜成需要账户 SID 和身份验证令牌进行身份验证。

关键参数:

  • from:注册的字母数字发件人 ID 或电话号码
  • to:E.164 格式的收件人号码 (+855) 巴西商业名录
  • body:消息内容(支持高棉语的Unicode)
import { Twilio } from 'twilio';

// Initialize client with environment variables
const client = new Twilio(
  process.env.TWILIO_ACCOUNT_SID,
  process.env.TWILIO_AUTH_TOKEN
);

async function sendSMSCambodia(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Send message with error handling
    const response = await client.messages.create({
      from: senderId,  // Registered alphanumeric sender ID
      to: to,         // Format: +85512345678
      body: message,
      // Optional parameters for delivery tracking
      statusCallback: 'https://your-callback-url.com/status'
    });
    
    console.log(`Message sent successfully: ${response.sid}`);
  } catch (error) {
    console.error('Error sending message:', error);
    throw error;
  }
}

辛奇

Sinch 在柬埔寨提供直接运营商连接,支持文本和二进制消息。

关键参数:

  • from:注册发件人 ID
  • to:收件人号码数组
  • body:留言内容
  • delivery_report: 配送状态追踪
import axios from 'axios';

interface SinchMessage {
  from: string;
  to: string[];
  body: string;
  delivery_report: string;
}

async function sendSinchSMS(
  apiToken: string,
  message: SinchMessage
): Promise<void> {
  const baseUrl = 'https://sms.api.sinch.com/xms/v1';
  const servicePlanId = process.env.SINCH_SERVICE_PLAN_ID;

  try {
    const response = await axios.post(
      `${baseUrl}/${servicePlanId}/batches`,
      message,
      {
        headers: {
          'Authorization': `Bearer ${apiToken}`,
          'Content-Type': 'application/json'
        }
      }
    );
    
    console.log('Batch ID:', response.data.id);
  } catch (error) {
    console.error('Sinch SMS Error:', error);
    throw error;
  }
}

信息鸟

MessageBird 在柬埔寨提供可靠的短信传递服务,并支持 Unicode 信息。

关键参数:

  • originator:发件人 ID(字母数字或数字)
  • recipients:收件人号码数组
  • content:消息内容和类型
import messagebird from 'messagebird';

class MessageBirdService {
  private client: any;

  constructor(apiKey: string) {
    this.client = messagebird(apiKey);
  }

  async sendSMS(
    originator: string,
    recipient: string,
    message: string
  ): Promise<void> {
    return new Promise((resolve, reject) => {
      this.client.messages.create({
        originator,
        recipients: [recipient],
        body: message,
        type: 'sms'
      }, (err: any, response: any) => {
        if (err) {
          reject(err);
          return;
        }
        resolve(response);
      });
    });
  }
}

API 速率限制和吞吐量

  • 默认速率限制
    • Twilio:每秒 250 条消息
    • Sinch:每秒 30 个请求
    • MessageBird:每秒 60 条消息

吞吐量管理策略:

  • 实施指数退避重试
  • 使用批处理 API 进行批量发送
  • 在高峰时段对消息进行排队
  • 监控承运商的运送费率

错误处理和报告

interface SMSError {
  code: string;
  message: string;
  timestamp: Date;
  recipient: string;
}

class SMSErrorHandler {
  private errors: SMSError[] = [];

  logError(error: SMSError): void {
    this.errors.push(error);
    // Implement your logging logic
    console.error(`SMS Error [${error.code}]: ${error.message}`);
  }

  async retryFailedMessages(): Promise<void> {
    // Implement retry logic with exponential backoff
    const retryDelay = (attempt: number) => Math.pow(2, attempt) * 1000;
    // Retry implementation
  }
}

回顾和其他资源

关键要点

  1. 合规重点
    • 使用 Smart Axiata 注册字母数字发件人 ID
    • 维护适当的加入/退出流程
    • 遵循时区注意事项
  2. 技术要求
    • 使用 E.164 数字格式
    • 支持高棉语的 Unicode
    • 实施适当的错误处理
  3. 最佳实践
    • 在所有主要运营商上进行测试
    • 监控配送率
    • 维护干净的联系人列表

下一步

  1. 查看柬埔寨电信监管机构 (TRC) 的指导方针
  2. 向相关承运商登记发件人 ID
  3. 实施适当的错误处理和监控
  4. 设置配送追踪系统。
滚动至顶部