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

马里短信最佳实践、合规性和功能

马里短信市场概览

区域设置名称: 马里
ISO 代码: 机器学习
地区 中东和非洲
移动国家代码 (MCC) 610
拨号代码 +223

市场状况:马里的移动市场主要由 Orange Mali 主导。短信仍然是一个重要的沟通渠道,尤其是对于商业消息和通知而言。虽然 WhatsApp 等 OTT 消息应用程序在城市地区越来越受欢迎,但由于其可靠性和通用设备支持,短信在农村和城市地区都保持着强大的渗透率。市场上的 Android 设备数量远远超过 iOS,使短信成为接触更广泛人群的特别有效的渠道。


马里的主要短信功能和能力

Mali 支持标准短信功能,但对双向消息传递有一些限制,并且对发件人 ID 有特定要求,尤其是通过 Orange 网络。

双向短信支持

马里不支持通过标准 A2P 渠道发送双向短信。企业应围绕单向通信设计消息传递策略。

串联消息(分段短信)

支持:是的,支持串联消息,但可用性可能因发件人 ID 类型而异。
消息长度规则:适用标准短信长度限制 – GSM-7 编码为 160 个字符,Unicode 为 70 个字符。
编码注意事项:支持 GSM-7 和 UCS-2 编码,根据所选编码在不同的阈值处进行消息拆分。

MMS 支持

Mali 不直接支持彩信。发送彩信内容时,会自动转换为短信,并嵌入 URL 链接,收件人可从中查看多媒体内容。这确保了所有设备类型的兼容性,同时仍支持富媒体共享。

收件人电话号码兼容性

号码可携性

马里不提供号码可携性。这意味着电话号码仍与原来的移动网络运营商绑定,这有助于确保可靠的消息路由。

向固定电话发送短信

在马里,无法向固定电话号码发送短信。尝试向固定电话号码发送消息将导致失败响应(400 错误,代码为 21614),并且不会产生任何费用。

马里短信合规与监管指南

马里的电信部门受马里电信监管局/TIC et des Postes (AMRTP) 监管。虽然具体的短信营销法律仍在不断发展,但 Orange Mali 等运营商强制执行了某些要求,以保护消费者并确保消息传递质量。

明确同意要求

  • 发送营销信息前必须获得书面或电子同意
  • 同意记录应保存并易于获取
  • 在选择加入时应明确说明消息传递的目的
  • 选择加入流程应记录时间戳和来源

最佳实践

  • 使用双重选择加入营销活动
  • 维护详细的同意日志,包括同意的日期、时间和方法
  • 明确传达订阅者将收到的消息类型和频率
  • 在选择加入过程中提供明确的条款和条件

HELP/STOP 和其他命令

  • STOP 和 HELP 命令必须同时支持法语和当地语言
  • 常见关键字包括:STOP、ARRET、AIDE、HELP
  • 所有退出请求必须在 24 小时内处理
  • 自动回复应以法语提供

请勿致电/请勿打扰登记

马里没有设立集中式“禁止致电”登记处。但是,企业应该:

  • 维护自己的抑制名单
  • 立即尊重退出请求
  • 保留退出号码记录至少 12 个月
  • 定期清理联系人列表,删除不活跃或选择退出的号码

时区敏感度

  • 消息只能在当地时间 (GMT) 上午 6:00 至晚上 10:00 之间发送
  • 每位用户每天最多可发送 3 条短信
  • 尊重当地节日和宗教仪式
  • 紧急信息不受时间限制

马里的电话号码选项和短信发件人类型

字母数字发件人 ID

运营商网络能力:支持
注册要求:一般用途不需要,但 Orange 要求对特定流量类型进行注册
发送人 ID 保存:是,发送人 ID 按规定保存

长代码

国内与国际:均支持
发件人身份保存:国内支持,国际不支持
配置时间:1-2 个工作日
用例:适用于交易信息和双因素身份验证

短代码

支持:支持
配置时间:4-6 周
用例:最适合大批量营销活动和客户服务


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

限制行业及内容

  • 赌博及投注(除特殊联系外)
  • 成人内容
  • 加密货币促销
  • 未经适当授权的政治信息
  • WhatsApp 相关流量已被阻止

内容过滤

已知承运人规则

  • 包含与限制行业相关的某些关键字的邮件会被屏蔽
  • URL 应来自批准的域
  • 内容不得违反当地文化和宗教敏感性

避免阻塞的提示

  • 避免使用 URL 缩短器
  • 使用清晰、直白的语言
  • 避免过多的标点符号或特殊字符
  • 在邮件内容中包含发件人身份

在马里发送短信的最佳实践

信息传递策略

  • 尽可能将消息控制在 160 个字符以内
  • 包含明确的号召性用语
  • 避免使用俚语或口语
  • 在各个活动中保持一致的发件人 ID

发送频率和时间

  • 每位收件人每天最多 3 条消息
  • 尊重斋月和其他宗教仪式
  • 避免在重大节假日期间发送
  • 间隔发送消息以防止收件人疲劳

本土化

  • 主要语言:法语和班巴拉语
  • 考虑使用双语信息进行重要沟通
  • 使用适当的字符编码来支持本地语言
  • 尊重信息内容中的文化差异

退出管理

  • 24 小时内处理退出
  • 保留清晰的退出记录
  • 在营销信息中包含退出说明
  • 定期审核退出名单的合规性

测试和监控

  • 在所有主要运营商(Orange、Malitel)上进行测试
  • 监控承运商的运送费率
  • 跟踪退出率和模式
  • 定期测试退出功能

马里的 SMS API 集成

Twilio

Twilio 提供了强大的 SMS API,支持向 Mali 发送消息。实现方法如下:

import { Twilio } from 'twilio';

// Initialize the client with your credentials
const client = new Twilio(
  process.env.TWILIO_ACCOUNT_SID,
  process.env.TWILIO_AUTH_TOKEN
);

// Function to send SMS to Mali
async function sendSMSToMali(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Ensure proper formatting for Mali numbers (+223)
    const formattedNumber = to.startsWith('+223') ? to : `+223${to}`;
    
    const response = await client.messages.create({
      body: message,
      from: senderId, // Alphanumeric sender ID
      to: formattedNumber,
      // Optional parameters for delivery tracking
      statusCallback: 'https://your-callback-url.com/status'
    });
    
    console.log(`Message sent successfully! SID: ${response.sid}`);
  } catch (error) {
    console.error('Error sending message:', error);
    throw error;
  }
}

辛奇

Sinch 为马里提供全面的短信功能,支持交易信息和营销信息:

import axios from 'axios';

class SinchSMSService {
  private readonly apiToken: string;
  private readonly serviceId: string;
  private readonly baseUrl: string;

  constructor(apiToken: string, serviceId: string) {
    this.apiToken = apiToken;
    this.serviceId = serviceId;
    this.baseUrl = 'https://sms.api.sinch.com/xms/v1';
  }

  async sendSMS(to: string, message: string): Promise<void> {
    try {
      const response = await axios.post(
        `${this.baseUrl}/${this.serviceId}/batches`,
        {
          from: 'YourSenderID',
          to: [to],
          body: message,
          delivery_report: 'summary'
        },
        {
          headers: {
            'Authorization': `Bearer ${this.apiToken}`,
            'Content-Type': 'application/json'
          }
        }
      );
      
      console.log('Message sent:', response.data.id);
    } catch (error) {
      console.error('Sinch SMS error:', error);
      throw error;
    }
  }
}

信息鸟

MessageBird 为马里提供可靠的短信传递服务,并提供详细的传递报告:

import messagebird from 'messagebird';

class MessageBirdService {
  private client: any;

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

  sendSMS(to: string, message: string): Promise<any> {
    return new Promise((resolve, reject) => {
      this.client.messages.create({
        originator: 'YourBrand',
        recipients: [to],
        body: message,
        datacoding: 'auto' // Automatic handling of special characters
      }, (err: any, response: any) => {
        if (err) {
          reject(err);
        } else {
          resolve(response);
        }
      });
    });
  }
}

普利沃

Plivo 提供了一个简单的 API,用于向马里发送短信:

import plivo from 'plivo';

class PlivoSMSService {
  private client: any;

  constructor(authId: string, authToken: string) {
    this.client = new plivo.Client(authId, authToken);
  }

  async sendSMS(to: string, message: string): Promise<void> {
    try {
      const response = await this.client.messages.create({
        src: 'YourSenderID', // Your registered sender ID
        dst: to, // Destination number
        text: message,
        url: 'https://your-callback-url.com/status', // Optional status callback
        method: 'POST'
      });
      
      console.log('Message sent:', response.messageUuid);
    } catch (error) {
      console.error('Plivo error:', error);
      throw error;
    }
  }
}

API 速率限制和吞吐量

  • 默认速率限制:每秒 30 条消息
  • 建议每小时处理量超过 1000 件时进行批量处理
  • 实现重试逻辑的指数退避算法
  • 高峰时段(当地时间上午 10 点至下午 2 点)排队消息

错误处理和报告

  • 为所有 API 调用实现全面日志记录
  • 监控送达收据并跟踪退回率
  • 设置异常错误模式警报
  • 存储消息元数据以进行故障排除
  • 针对临时故障实现自动重试

回顾和其他资源

关键要点

  1. 合规重点
  2. 技术考虑
  3. 最佳实践
    • 本地化内容(法语/班巴拉语)
    • 保持一致的发件人 ID
    • 定期跨运营商测试

下一步

  1. 请访 看 AMRTP 法规 意大利电话号码
  2. 咨询当地法律顾问以确保合规性
  3. 使用首选短信提供商设置测试账户
  4. 实施配送监控系统。
滚动至顶部