为什么使用发件人 ID 时我的印度收件人收不到我的短信?

1 分钟阅读
0

我无法使用发件人 ID 通过 Amazon Simple Notification Service(Amazon SNS)向印度号码发送短消息服务(SMS)短信。

简短描述

当您向印度境内的收件人发送短信时,默认情况下,Amazon SNS 使用国际长途运营商(ILDO)路由传输这些短信。这些短信看起来好像是从随机数字 ID 发送的。

**注意:**如果在印度使用 ILDO 连接,则发送短信的价格会高于当地路由。

要通过当地路由发送短信,请在使用 SNS 发布短信时使用预先注册的字母发件人 ID。请务必通过分布式账本技术(DLT)门户向印度电信监管局(TRAI)注册用例和短信模板。有关详细信息,请参阅印度的发件人 ID 注册要求。可以使用 SNS Publish API 请求发送带有注册发件人 ID 的短信。

注意:

  • 使用 Amazon SNS 控制台发布短信时,请使用印度的特定于国家/地区的属性,例如实体 ID模板 ID
  • 使用 SNS Publish API 时,请添加 MessageAttributes 参数以设置值,例如 AWS.MM.SMS.EntityIdAWS.MM.SMS.TemplateId。有关详细信息,请参阅发送短信(AWS SDK)

解决方法

按照以下步骤查明和解决使用发件人 ID 时出现的短信发送问题。

验证注册发件人 ID 的 AWS 区域和用于发送短信的 AWS 区域

SNS 服务支持多个区域的发件人 ID,请参阅支持的区域和国家/地区。使用注册发件人 ID 的同一 AWS 区域发送短信。

确保包含正确的发件人 ID 以及相应的 EntityId 和 TemplateId

验证 EntityIdTemplateId 是否正确。检查从 DLT 门户收到的值。

Python(Boto3) Publish API 调用示例:

import boto3

client = boto3.client('sns')
response = client.publish(
        PhoneNumber='+91xxxxxxxxxx',
        Message="Registered Test Message",
        MessageAttributes={
            'AWS.MM.SMS.EntityId': {
                'DataType': 'String',
                'StringValue': '<EntityId>'
            },
            'AWS.MM.SMS.TemplateId': {
                'DataType': 'String',
                'StringValue': '<TemplateId>'
            },
            'AWS.SNS.SMS.SenderID': {
                'DataType': 'String',
                'StringValue': '<SenderID>'
            },
            'AWS.SNS.SMS.SMSType': {
                'DataType': 'String',
                'StringValue': 'Transactional'
            }
        }
)

**注意:**请将 <EntityId> 替换为您的注册实体 ID,将 <TemplateId> 替换为您的注册模板 ID,以及将 <SenderID> 替换为您的注册发件人 ID。有关其他语言,请参阅相应的特定于语言的 AWS SDK 页面

启用 Amazon CloudWatch 日志,然后查看短信发送日志

有关详细信息,请参阅如何访问短信的 Amazon SNS 主题传输日志?在短信发送日志中,查看以下 providerResponse 通知:

  • 手机已屏蔽短信
  • 被电话运营商屏蔽为垃圾短信
  • 电话运营商屏蔽了此短信

如果短信内容与在 DLT 门户中注册的模板不匹配,运营商和提供商可能会屏蔽短信。或者,如果短信包含与注册模板不同的字符,他们可能会屏蔽短信。有关详细信息,请参阅运营商可能屏蔽短信的原因模板匹配问题

检查下游提供商和运营商是否存在问题

要排查潜在的下游问题,请为 Amazon SNS 创建支持案例。在支持案例中提供以下信息:

  • 注册发件人 ID 以发送短信的 AWS 区域
  • 来自 DLT 门户的 CSV 文件,其中包含注册的模板
  • 三到四个短信日志示例。日志包括每个不同号码的失败短信的短信 ID(以及时间戳和时区)。这些日志示例的时间不能早于 48 到 72 小时。

**注意:**在印度,促销短信只能在印度标准时间(IST)上午 9 点至晚上 9 点发送。在此时间范围之外发送的任何短信都可能导致无法送达。

AWS 官方
AWS 官方已更新 10 个月前