首页 » 博客 » 受限制的短信内容、行业和用例

受限制的短信内容、行业和用例

限制行业:

  • 赌博和博彩服务
  • 成人内容
  • 加密货币促销
  • 未经适当授权的政治活动
  • 未经授权的金融服务

受监管行业:

  • 银行业务(需要额外验证)
  • 医疗保健(须遵守数据保护要求)
  • 保险(必须包含免责声明信息)

内容过滤

已知运营商过滤器:

最佳实践:

  • 使用注册的 URL 缩短服务
  • 避免过多标点
  • 保持一致的发送模式
  • 包括清晰的公司标识

在智利发送短信的最佳做法

信息传递策略

  • 尽可能将消息控制在 160 个字符以内
  • 包含明确的号召性用语
  • 慎重使用个性化标记
  • 保持一致的品牌声音 美国数据库

发送频率和时间

本土化

  • 主要语言:西班牙语(智利方言)
  • 考虑为国际企业提供双语信息
  • 使用本地日期和时间格式
  • 调整内容以适应文化相关性

退出管理

  • 24 小时内处理退出
  • 发送退出确认
  • 维护集中退出数据库
  • 定期审核退出名单

测试和监控

  • 跨主要运营商进行测试(Movistar、Entel、WOM)
  • 监控承运商的运送费率
  • 跟踪参与度指标
  • 定期对消息内容进行 A/B 测试

智利的 SMS API 集成

Twilio

Twilio 提供了强大的 REST API,用于向智利发送短信。身份验证使用您的帐户 SID 和身份验证令牌。

import * as Twilio from 'twilio';

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

// Function to validate Chilean phone numbers
const validateChileanNumber = (phone: string): boolean => {
  // Chilean numbers: +56 9 XXXX XXXX
  return /^\+56[9][0-9]{8}$/.test(phone);
};

async function sendSMSToChile(
  to: string,
  message: string
): Promise<void> {
  try {
    if (!validateChileanNumber(to)) {
      throw new Error('Invalid Chilean phone number format');
    }

    const response = await client.messages.create({
      body: message,
      to: to,
      from: process.env.TWILIO_PHONE_NUMBER,
      // Optional: statusCallback URL for delivery updates
      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 提供了一个简单的 SMS 集成 API,并内置了对智利运营商的支持。

import { SinchClient } from '@sinch/sdk-core';

class ChileSMSService {
  private client: SinchClient;

  constructor() {
    this.client = new SinchClient({
      projectId: process.env.SINCH_PROJECT_ID,
      keyId: process.env.SINCH_KEY_ID,
      keySecret: process.env.SINCH_KEY_SECRET
    });
  }

  async sendMessage(
    phoneNumber: string,
    message: string
  ): Promise<void> {
    try {
      const response = await this.client.sms.batches.send({
        sendSMSRequestBody: {
          to: [phoneNumber],
          from: process.env.SINCH_SENDER_ID,
          body: message,
          // Chile-specific delivery report
          deliveryReport: 'summary'
        }
      });

      console.log('Message batch ID:', response.id);
    } catch (error) {
      console.error('Sinch SMS error:', error);
      throw error;
    }
  }
}

信息鸟

MessageBird 为智利市场提供了具有特定功能的综合 API。

import { MessageBird } from 'messagebird';

class ChileMessageService {
  private client: MessageBird;

  constructor() {
    this.client = new MessageBird(process.env.MESSAGEBIRD_API_KEY);
  }

  async sendSMS(
    recipient: string,
    content: string
  ): Promise<void> {
    const params = {
      originator: process.env.MESSAGEBIRD_ORIGINATOR,
      recipients: [recipient],
      body: content,
      // Chile-specific parameters
      datacoding: 'auto',
      type: 'sms'
    };

    try {
      const response = await new Promise((resolve, reject) => {
        this.client.messages.create(params, (err, response) => {
          if (err) reject(err);
          resolve(response);
        });
      });

      console.log('MessageBird response:', response);
    } catch (error) {
      console.error('MessageBird error:', error);
      throw error;
    }
  }
}

普利沃

Plivo 提供可靠的短信递送至智利服务,并提供详细的递送追踪。

import * as plivo from 'plivo';

class ChilePlivoService {
  private client: plivo.Client;

  constructor() {
    this.client = new plivo.Client(
      process.env.PLIVO_AUTH_ID,
      process.env.PLIVO_AUTH_TOKEN
    );
  }

  async sendSMS(
    destination: string,
    text: string
  ): Promise<void> {
    try {
      const response = await this.client.messages.create({
        src: process.env.PLIVO_SOURCE_NUMBER,
        dst: destination,
        text: text,
        // Chile-specific options
        url: 'https://your-callback-url.com/status',
        method: 'POST'
      });

      console.log('Message UUID:', response.messageUuid);
    } catch (error) {
      console.error('Plivo error:', error);
      throw error;
    }
  }
}

API 速率限制和吞吐量

  • 标准费率限制
    • 每个长代码每秒 30 条消息
    • 每个短代码每秒 100 条消息
    • 每个批量请求最多可有 1000 名收件人

吞吐量管理策略:

  • 实施指数退避重试
  • 使用消息队列系统(Redis、RabbitMQ)
  • 以 50-100 条为一组批量处理消息
  • 监控投递率并调整发送速度

错误处理和报告

记录最佳实践:

  • 记录所有 API 响应和消息 ID
  • 追踪配送状态回调
  • 监控运营商特定的错误代码
  • 针对高故障率实施自动警报

故障排除提示:

  • 验证数字格式(+56 前缀)
  • 检查内容过滤触发器
  • 监控速率限制标头
  • 维护错误代码参考文档

回顾和其他资源

关键要点

  1. 合规第一:始终获得明确同意并尊重选择退出
  2. 技术实现:使用适当的电话号码格式并处理速率限制
  3. 内容指南:遵循智利西班牙语要求和时间限制
  4. 监控:实施全面的日志记录和状态跟踪。
滚动至顶部