You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AWS End User Messaging配置在PHP中发送短信?

使用AWS End User Messaging发送短信的PHP SDK正确配置方式

你遇到的错误核心原因是:AWS.SNS.SMS.OriginationNumber和AWS.SNS.SMS.ConfigurationSet这类以AWS.开头的属性是AWS系统保留字段,不能作为自定义消息属性传入。针对AWS End User Messaging的专属功能(号码池、配置集、防护配置),需要通过SNS Publish接口的顶层参数直接指定,而非嵌套在MessageAttributes中。

修正后的代码示例

<?php
use Aws\Sns\SnsClient;

// 初始化SNS客户端
$sns = new SnsClient([
    'version' => 'latest',
    'region' => '你的AWS区域', // 例如 us-east-1、ap-southeast-1
    'credentials' => [
        'key' => '你的AWS Access Key ID',
        'secret' => '你的AWS Secret Access Key',
    ]
]);

// 短信参数
$message = '你的短信内容';
$recipientPhone = '+1234567890'; // 接收方号码,必须是E.164格式(带+号)
$originationNumber = '+0987654321'; // 从你的号码池中选取的始发号码(E.164格式)
$configurationSetName = '你的配置集名称';

// 发送短信请求
$result = $sns->publish([
    'Message' => $message,
    'PhoneNumber' => $recipientPhone,
    'OriginationPhoneNumber' => $originationNumber, // 直接指定始发号码
    'ConfigurationSetName' => $configurationSetName, // 直接指定配置集
    'MessageAttributes' => [
        // 仅SMSType仍可作为消息属性保留
        'AWS.SNS.SMS.SMSType' => [
            'DataType' => 'String',
            'StringValue' => 'Transactional' // 可选值:Transactional/Promotional
        ]
    ]
]);

// 输出发送结果
echo "短信发送成功,消息ID:" . $result['MessageId'];
?>

关键配置说明

  1. 始发号码(OriginationPhoneNumber)

    • 必须是你已创建的Phone Pool中的有效号码,格式为E.164(带+号)。
    • 作为顶层参数传入,而非消息属性,避免触发保留字段错误。
  2. 配置集(ConfigurationSetName)

    • 直接作为顶层参数传入,对应的配置集需已关联你的Protection Configuration。
    • 配置集的防护规则会自动应用到该发送请求,无需额外配置。
  3. 保留的消息属性

    • 仅AWS.SNS.SMS.SMSType仍支持作为消息属性使用,用于指定短信类型(事务性/营销性)。
    • 其他原AWS前缀的短信属性已被弃用,需通过顶层参数替代。

前置检查事项

  • 确认始发号码已添加到Phone Pool,且状态为「可用」。
  • 确认配置集已创建,并正确关联了Protection Configuration。
  • 确保你的AWS凭证拥有sns:Publish权限,且权限范围包含指定的始发号码和配置集。

常见问题排查

  • 若提示「号码不可用」:检查始发号码是否在号码池中,是否超出发送配额或被封禁。
  • 若配置集规则未生效:验证配置集名称是否正确,防护配置是否已绑定到该配置集。
  • 权限错误:检查IAM角色/用户的策略,确保允许操作指定的SNS资源。

内容的提问来源于stack exchange,提问作者pmali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:40:19