信息传递策略
- 尽可能将消息控制在 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
:注册发件人 IDto
:收件人号码数组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
}
}
回顾和其他资源
关键要点
- 合规重点
- 使用 Smart Axiata 注册字母数字发件人 ID
- 维护适当的加入/退出流程
- 遵循时区注意事项
- 技术要求
- 使用 E.164 数字格式
- 支持高棉语的 Unicode
- 实施适当的错误处理
- 最佳实践
- 在所有主要运营商上进行测试
- 监控配送率
- 维护干净的联系人列表
下一步
- 查看柬埔寨电信监管机构 (TRC) 的指导方针
- 向相关承运商登记发件人 ID
- 实施适当的错误处理和监控
- 设置配送追踪系统。