メインコンテンツまでスキップ

メール配信結果を取得する

配信が完了したメールの結果(配信数やエラー数など)を取得するには POST /api/v1/get_delivery_result を使用します。

備考

この API は配信完了前にも呼び出し可能ですが、配信フェーズが「配信予約中」または「配信リスト作成中」の場合、count_info の各値はすべて 0 となります。

リクエスト

キーデータ型必須説明
delivery_idInteger結果を取得したい配信のID。

レスポンス

キーデータ型説明
count_infoObject種別ごとの配信数を格納したオブジェクト。
start_dateInteger配信を開始した日時のUNIXタイムスタンプ。
end_dateInteger配信の引き渡しが完了した日時のUNIXタイムスタンプ。

count_info オブジェクトの詳細

キーデータ型説明
allInteger全配信対象数。
stoppedInteger配信停止の対象数。
no_addressIntegerメールアドレスが空欄だった対象数。
errorInteger配信エラーになった対象数。
blacklistIntegerブラックリストに該当した対象数。
unsubscribed_addressInteger登録解除リストに該当した対象数。
readyInteger文面引き渡し待ちの対象数。
composedInteger文面引き渡しが完了した対象数。

サンプルコード

配信処理が完了したことを確認してから、配信結果を取得・表示する例です。

<?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;
}