如何处理AWS SES SesClient sendEmail()方法的结果?

时间:2017-11-19 10:30:58

标签: php amazon-web-services aws-sdk email-integration amazon-ses

短:

我如何处理来自Amazon AWS的SES-API的sendEmail()方法的结果?

长:

我已经在PHP项目中成功安装了"aws/aws-sdk-php": "^3.38" via composer。

我已成功发送有关公式的电子邮件:

$client = new SesClient( $sesParameters );
$result = $client->sendEmail( $emailSesArgs );

有效。

我收到的结果如下:

Result {#433 ▼
  -data: array:2 [▼
    "MessageId" => "0102015fd3c21fd2-98a104e2-0c3f-4078-90ed-0be3a12ae812-000000"
    "@metadata" => array:4 [▼
      "statusCode" => 200
      "effectiveUri" => "https://email.eu-west-1.amazonaws.com"
      "headers" => array:4 [▼
        "x-amzn-requestid" => "e27b7805-cd11-11e7-9d57-cd9600d88c96"
        "content-type" => "text/xml"
        "content-length" => "326"
        "date" => "Sun, 19 Nov 2017 10:10:35 GMT"
      ]
      "transferStats" => array:1 [▼
        "http" => array:1 [▼
          0 => []
        ]
      ]
    ]
  ]
}

问题

问题是......

  • 除了实时探索200 OK结果外,我应该如何处理此结果?
  • 之后使用此MessageId
  • 可以执行哪些操作
  • 我发现,如果我向无效地址发送电子邮件,则会返回200 OK。可能这更像是一种“承认”,即发送电子邮件“请求”已经提交,而不是实际处理它。我是否可以使用结果通过API进一步读取deilvey本身的“状态”,以发现电子邮件是否已成功发送?

谢谢!

1 个答案:

答案 0 :(得分:1)

我所做的是通过配置触发AWS Lambda功能的SNS主题(SES>域> example.com>通知)来使用消息ID跟踪消息传递,退回和投诉(SNS>主题>订阅),它反过来在DynamoDB表中存储/更新传递状态,以便以后进行查询操作。