

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon SES API 和 适用于 PHP 的 Amazon SDK 版本 3 来监控发送活动
<a name="ses-send-email"></a>

Amazon Simple Email Service (Amazon SES) 提供了监控发送活动的方法。我们建议您实现这些方法，以便您可以跟踪重要的指标，如您账户的邮件退回率、投诉率和拒绝率。过高的退回邮件率和投诉率可能会影响您使用 Amazon SES 发送电子邮件的能力。

以下示例演示如何：
+ 使用 [GetSendQuota](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-email-2010-12-01.html#getsendquota) 检查您的发送配额。
+ 使用 [GetSendStatistics](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-email-2010-12-01.html#getsendstatistics) 监控您的发送活动。

适用于 PHP 的 Amazon SDKGitHub[ 上提供了](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)的所有示例代码。

## 凭证
<a name="examplecredentials"></a>

运行示例代码之前，请配置您的 Amazon 凭证，如 [Amazon 使用 适用于 PHP 的 Amazon SDK 版本 3 进行身份验证](credentials.md) 中所述。然后导入 适用于 PHP 的 Amazon SDK，如 [安装 适用于 PHP 的 Amazon SDK 版本 3](getting-started_installation.md) 中所述。

有关使用 Amazon SES 的更多信息，请参阅 [Amazon SES 开发人员指南](https://docs.amazonaws.cn/ses/latest/DeveloperGuide/)。

## 检查发送配额
<a name="check-your-sending-quota"></a>

在单个 24 小时期间，您只能发送特定数量的邮件。要检查仍然允许您发送多少邮件，请使用 [GetSendQuota](https://docs.amazonaws.cn/ses/latest/APIReference/API_GetSendQuota.html) 操作。有关更多信息，请参阅 [管理 Amazon SES 发送限制](https://docs.amazonaws.cn/ses/latest/DeveloperGuide/manage-sending-limits.html)。

 **导入**。

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Ses\SesClient;
```

 **示例代码** 

```
$SesClient = new SesClient([
    'profile' => 'default',
    'version' => '2010-12-01',
    'region' => 'us-east-1'

]);

try {
    $result = $SesClient->getSendQuota();
    $send_limit = $result["Max24HourSend"];
    $sent = $result["SentLast24Hours"];
    $available = $send_limit - $sent;
    print("<p>You can send " . $available . " more messages in the next 24 hours.</p>");
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## 监控发送活动
<a name="monitor-your-sending-activity"></a>

要检索您在过去两周内发送的邮件的指标，请使用 [GetSendStatistics](https://docs.amazonaws.cn/ses/latest/APIReference/API_GetSendStatistics.html) 操作。此示例以 15 分钟为增量，返回传送尝试的次数、退回邮件数、投诉邮件数和拒绝邮件数。

 **导入**。

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Ses\SesClient;
```

 **示例代码** 

```
$SesClient = new SesClient([
    'profile' => 'default',
    'version' => '2010-12-01',
    'region' => 'us-east-1'
]);

try {
    $result = $SesClient->getSendStatistics();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```