メール配信結果を取得する
配信が完了したメールの結果(配信数やエラー数など)を取得するには POST /api/v1/get_delivery_result を使用します。
備考
この API は配信完了前にも呼び出し可能ですが、配信フェーズが「配信予約中」または「配信リスト作成中」の場合、count_info の各値はすべて 0 となります。
リクエスト
| キー | データ型 | 必須 | 説明 |
|---|---|---|---|
delivery_id | Integer | ○ | 結果を取得したい配信のID。 |
レスポンス
| キー | データ型 | 説明 |
|---|---|---|
count_info | Object | 種別ごとの配信数を格納したオブジェクト。 |
start_date | Integer | 配信を開始した日時のUNIXタイムスタンプ。 |
end_date | Integer | 配信の引き渡しが完了した日時のUNIXタイムスタンプ。 |
count_info オブジェクトの詳細
| キー | データ型 | 説明 |
|---|---|---|
all | Integer | 全配信対象数。 |
stopped | Integer | 配信停止の対象数。 |
no_address | Integer | メールアドレスが空欄だった対象数。 |
error | Integer | 配信エラーになった対象数。 |
blacklist | Integer | ブラックリストに該当した対象数。 |
unsubscribed_address | Integer | 登録解除リストに該当した対象数。 |
ready | Integer | 文面引き渡し待ちの対象数。 |
composed | Integer | 文面引き渡しが完了した対象数。 |
サンプルコード
配信処理が完了したことを確認してから、配信結果を取得・表示する例です。
- PHP
<?php
// ... (配信完了まで待機する処理は前のサンプルを参照) ...
$deliveryId = 1; // 実際の配信IDに置き換えてください
$environmentId = getenv("ENV_ID");
$apiUrl = "https://krs.bz/$environmentId/api/v1/get_delivery_result";
$apiToken = getenv("API_TOKEN");
$params = ['delivery_id' => $deliveryId];
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json',
]);
$response_body = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code === 200) {
$result = json_decode($response_body);
$countInfo = $result->count_info;
echo '配信が完了しました。', PHP_EOL;
echo '配信開始日時: ', date('Y年m月d日 H時i分s秒', $result->start_date), PHP_EOL;
echo '引き渡し完了日時: ', date('Y年m月d日 H時i分s秒', $result->end_date), PHP_EOL;
echo '全配信対象レコード: ', $countInfo->all, PHP_EOL;
echo '引き渡し成功レコード: ', $countInfo->composed, PHP_EOL;
echo 'エラーレコード: ', $countInfo->error, PHP_EOL;
} else {
echo 'APIエラー: ', $response_body, PHP_EOL;
}