摩洛哥短信市场概况
区域设置名称: | 摩洛哥 |
---|---|
ISO 代码: | 马萨诸塞州 |
地区 | 中东和非洲 |
移动国家代码 (MCC) | 604 |
拨号代码 | +212 |
市场状况:摩洛哥拥有活跃的移动通信市场,主要有三美国 whatsapp 数据家运营商:Maroc Telecom、Orange Morocco 和 Inwi(前身为 Wana)。尽管 WhatsApp 和 Facebook Messenger 等消息应用程序越来越受欢迎,但短信仍然是企业和消费者的重要沟通渠道。Android 设备占据市场主导地位,约占移动设备的 85%,而 iOS 设备则占剩余份额。
摩洛哥的主要短信功能和能力
摩洛哥提供强大的短信功能,支持连接消息和字母数字发件人 ID,但双向短信功能有限。
双向短信支持
在摩洛哥,大多数提供商都不支持双向短信。这意味着企业无法通过标准 A2P 渠道收到短信回复。
串联消息(分段短信)
支持:是的,大多数网络都支持串联,但支持情况印度尼西亚短信最佳实践、合规性和功能可能因发件人 ID 类型而异。
消息长度规则:GSM-7 编码的标准短信长度为 160 个字符,Unicode (UCS-2) 编码的标准短信长度为 70 个字符。
编码注意事项:支持 GSM-7 和 UCS-2 编码。阿拉伯语文本需要 UCS-2 编码,将每个段的字符限制减少到 70 个。
MMS 支持
摩洛哥不直接支持彩信。尝试发送彩信时,信息将自动转换为短信,并嵌入 URL 链接,收件人可以查看多媒体内容。这可确保信息传递,同时保持与所有网络的兼容性。
收件人电话号码兼容性
号码可携性
摩洛哥提供号码可携性,允许用户在移动运营商之间切换时保留自己的电话号码。此功能不会对短信发送或路由产生重大影响,因为短信会正确路由到当前运营商。
向固定电话发送短信
在摩洛哥,无法向固定电话号码发送短信。尝试向固定电话号码发送消息将导致发送失败,通常会生成 400 响应,错误代码为 21614。这些消息不会出现在日志中,并且不会因失败的尝试而向帐户收取费用。
摩洛哥短信合规与监管指南
摩洛哥的短信通信受国家电信管理局 (ANRT) 监管。公司必须遵守当地电信法和数据保护法规,包括有关个人数据处理方面个人保护的 09-08 号法律。
同意和选择加入
明确同意要求:
- 在发送营销信息之前获得明确、有记录的选择加入同意 领导孟加拉国搜索引擎优化
- 保存何时以及如何获得同意的详细记录
- 在同意请求中包括公司名称和宗旨
- 提供有关消息频率和内容的明确条款和条件
收集同意的最佳做法:
- 对营销列表使用双重选择加入验证
- 记录同意时间戳、来源和 IP 地址
- 保存同意记录至少 2 年
- 定期同意数据库维护和更新
HELP/STOP 和其他命令
- 所有短信活动都必须支持标准退出关键字:
- 停止、逮捕、取消订阅(英语/法语)
- توقف(阿拉伯语)
- HELP/AIDE 命令必须提供服务信息
- 对命令的响应应该使用与收到的关键字相同的语言
- 所有命令响应必须对用户免费
请勿致电/请勿打扰登记
摩洛哥没有设立集中式“谢绝来电”登记处。但是,企业应该:
- 维护自己的抑制名单
- 24 小时内尊重退出请求
- 定期清理联系人列表
- 实施自动退出处理
- 记录所有退出请求和处理日期
时区敏感度
摩洛哥遵守西欧时间 (WET/GMT+1)。虽然对短信没有严格的法律时间限制:
- 建议发送时间:当地时间上午 9:00 至晚上 8:00
- 宗教注意事项:避免在祈祷时间发送
- 节日意识:尊重斋月和其他宗教仪式
- 紧急例外:紧急消息可能会在建议时间之外发送
摩洛哥的电话号码选项和短信发件人类型
字母数字发件人 ID
运营商网络能力:全面支持各大网络
注册要求:需要预先注册,大约需要 3 周
发件人 ID 保存:是,在除 Inwi 之外的所有网络上保存
字符限制:最多 11 个字符,仅限字母数字
长代码
国内与国际:
- 不支持国内长代码
- 支持国际长代码但有限制
- Maroc Telecom 和 Wana Telecom 不支持数字发件人 ID
发件人 ID 保存:否,国际号码可能会被通用字母数字 ID 覆盖
用例:不建议用于营销活动;更适合交易消息
短代码
支持:目前不支持摩洛哥
替代方案:改用预先注册的字母数字发件人 ID
受限制的短信内容、行业和用例
禁止内容:
- 赌博和博彩服务
- 成人内容或露骨内容
- 未经适当授权的政治信息
- 宗教内容
- 非法物质或服务
- 仇恨言论或歧视内容
受监管行业:
- 金融服务需要额外文件
- 医疗保健信息必须遵守隐私法规
- 追债服务面临严格限制
内容过滤
已知运营商过滤器:
- 来自未知域名的 URL 可能会被阻止
- 包含与受限内容相关的特定关键字的邮件
- 多个感叹号或全大写文本
避免过滤的最佳实践:
- 使用已注册并获批准的发件人 ID
- 避免使用 URL 缩短器
- 保持内容专业且清晰
- 对于敏感行业请使用认可的模板
- 保持一致的发送模式
在摩洛哥发送短信的最佳做法
信息传递策略
- 尽可能将消息控制在 160 个字符以内
- 包含明确的号召性用语
- 慎重使用个性化标记
- 保持一致的品牌声音
- 在消息中包含公司名称
发送频率和时间
- 每位收件人每月最多可发送 4-5 条消息
- 尊重斋月送信时间
- 避免在周五祈祷期间发送
- 分散批量活动以防止网络拥塞
本土化
- 支持阿拉伯语、法语和当地达里贾方言
- 对阿拉伯文本使用适当的字符编码
- 考虑内容中的文化敏感性
- 提供语言偏好选择
退出管理
- 24 小时内处理退出
- 维护集中退出数据库
- 在消息中包含退出说明
- 定期审核选择退出合规性
测试和监控
- 在所有主要运营商上进行测试(Maroc Telecom、Orange、Inwi)
- 监控承运商的运送费率
- 跟踪退出率和模式
- 定期内容和合规性审核
- A/B 测试消息时间和内容
摩洛哥的 SMS API 集成
Twilio
Twilio 提供了强大的 REST API,用于向摩洛哥发送短信。身份验证使用帐户 SID 和身份验证令牌。
import { Twilio } from 'twilio';
// Initialize client with your credentials
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// Function to send SMS to Morocco
async function sendSMSToMorocco(
to: string,
message: string,
senderId: string
): Promise<void> {
try {
// Ensure proper formatting for Morocco numbers (+212)
const formattedNumber = to.startsWith('+212') ? to : `+212${to.slice(-9)}`;
const response = await client.messages.create({
body: message,
from: senderId, // Pre-registered alphanumeric sender ID
to: formattedNumber,
// Optional parameters for delivery tracking
statusCallback: 'https://your-webhook.com/status'
});
console.log(`Message sent successfully! SID: ${response.sid}`);
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
辛奇
Sinch 为摩洛哥短信提供了带有 JWT 认证的简单 REST API。
import axios from 'axios';
class SinchSMSClient {
private readonly baseUrl: string;
private readonly apiToken: string;
private readonly servicePlanId: string;
constructor(servicePlanId: string, apiToken: string) {
this.baseUrl = 'https://sms.api.sinch.com/xms/v1';
this.apiToken = apiToken;
this.servicePlanId = servicePlanId;
}
async sendSMS(to: string, message: string, senderId: string): Promise<void> {
try {
const response = await axios.post(
`${this.baseUrl}/${this.servicePlanId}/batches`,
{
from: senderId,
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 提供了功能丰富的 API,支持摩洛哥的特定要求。
import messagebird from 'messagebird';
class MessageBirdClient {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendSMS(
to: string,
message: string,
senderId: string
): Promise<any> {
return new Promise((resolve, reject) => {
// Configure message parameters
const params = {
originator: senderId,
recipients: [to],
body: message,
// Morocco-specific parameters
datacoding: 'unicode', // For Arabic support
type: 'premium' // For business messaging
};
this.client.messages.create(params, (err: any, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
普利沃
Plivo 提供了可靠的 API,具有针对摩洛哥消息传递的特定功能。
import plivo from 'plivo';
class PlivoSMSClient {
private client: any;
constructor(authId: string, authToken: string) {
this.client = new plivo.Client(authId, authToken);
}
async sendSMS(
to: string,
message: string,
senderId: string
): Promise<void> {
try {
const response = await this.client.messages.create({
src: senderId, // Your registered sender ID
dst: to, // Destination number in E.164 format
text: message,
// Morocco-specific parameters
url_strip_domain: false, // Preserve full URLs
powerpack_id: 'your_powerpack_id' // If using Powerpack
});
console.log('Message sent:', response.messageUuid);
} catch (error) {
console.error('Plivo error:', error);
throw error;
}
}
}
API 速率限制和吞吐量
- 默认速率限制因提供商而异:
- Twilio:每秒 100 条消息
- Sinch:每秒 30 条消息
- MessageBird:每秒 60 条消息
- Plivo:50 条消息/秒
大规模发送策略:
- 实现队列系统(Redis/RabbitMQ)
- 尽可能使用批处理 API
- 实施指数退避重试
- 监控吞吐量并调整发送速率
错误处理和报告
- 实施全面日志记录
- 监控送货回执
- 跟踪常见错误代码
- 设置故障阈值的自动警报
- 维护错误日志以确保合规性
回顾和其他资源
关键要点
- 合规第一
- 预先注册字母数字发件人 ID
- 维护选择加入记录
- 及时尊重退出请求
- 技术考虑
- 支持阿拉伯语文本的 Unicode
- 实施适当的错误处理
- 监控配送率
- 最佳实践
- 尊重当地时区
- 使用适当的语言选项
- 保持信息简洁且相关。