尽管成功响应,但 AWS 短信仍未送达

问题描述 投票:0回答:1

我在StackOverflow上看到了和我类似的问题的帖子,但都没有帮我解决这个问题。这就是为什么我要创建一个新的帖子。

当我第一次设置AWS SNS时,我测试了使用在线控制台发送SMS,它工作了!然后我写了PHP代码来发送示例消息。我得到了一些错误,但能够轻松解决它们。然而,当我得到一个成功的响应时,消息根本没有收到。

我认为这是一个Limitation问题。所以我联系了AWS,并将我的限制增加到20USmonth。我更新了偏好设置,但结果还是一样。我得到了一个成功的响应,仪表板显示消息已成功发送(尽管更新发送的消息数量需要时间)。但是消息没有收到。

这是我的代码,供参考。

<?php
require './aws/aws-autoloader.php';

use Aws\Sns\SnsClient;
use Aws\Exception\AwsException;

$sdk = new SnsClient([
  'region' => 'us-east-1',
  'version' => 'latest',
  'credentials' => [
    'key' => 'XXXXXXXXXXXXXXXXXXX',
    'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
  ]
]);

try {
  $result = $sdk->publish([
    'Message' => 'Reminder - You are scheduled for a session on 2020-05-20 at 4:30 PM',
    'MessageStructure' => 'String',
    'PhoneNumber' => '+1XXX789XXXX',
    'MessageAttributes' => [
      'AWS.SNS.SMS.SenderID' => [
        'DataType' => 'String',
        'StringValue' => 'MyName'
      ],
      'AWS.SNS.SMS.SMSType' => [
        'DataType' => 'String',
        'StringValue' => 'Transactional'
      ]
    ]
  ]);
  var_dump($result);
  echo "\n";
} catch (AwsException $e) {
  // output error message if fails
  var_dump($e->getMessage());
}

这里是结果对象

object(Aws\Result)#119 (2) {
  ["data":"Aws\Result":private]=>
  array(2) {
    ["MessageId"]=>
    string(36) "8cf11950-cdb0-5503-9b69-4e6e9b61eaba"
    ["@metadata"]=>
    array(4) {
      ["statusCode"]=>
      int(200)
      ["effectiveUri"]=>
      string(35) "https://sns.us-east-1.amazonaws.com"
      ["headers"]=>
      array(4) {
        ["x-amzn-requestid"]=>
        string(36) "0488b803-8776-57bc-b9a9-ef3dd1a71805"
        ["content-type"]=>
        string(8) "text/xml"
        ["content-length"]=>
        string(3) "294"
        ["date"]=>
        string(29) "Tue, 19 May 2020 21:50:09 GMT"
      }
      ["transferStats"]=>
      array(1) {
        ["http"]=>
        array(1) {
          [0]=>
          array(0) {
          }
        }
      }
    }
  }
  ["monitoringEvents":"Aws\Result":private]=>
  array(0) {
  }
}

我已经没有办法了 不知道如何解决这个问题。任何帮助都将是感激的.谢谢。

amazon-web-services sms
1个回答
1
投票

我相信从短信的性质来看,它时常会失败。

根据我自己的观察,AWS雇佣了一些区域性的SMS提供商,他们会帮助他们将SMS发送到你的运营商。

有时候,短信提供商会发送失败。有时会被接收运营商拒绝。

目前,我们没有办法确定它是否失败(并对这种情况做出反应)如果短信对你的业务至关重要,我建议结合AWS使用其他短信服务。

© www.soinside.com 2019 - 2024. All rights reserved.