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

メールの配信状況を確認する

配信予約したメールの現在のステータスを確認するには POST /api/v1/get_delivery_status を使用します。

リクエスト

キーデータ型必須説明
delivery_idInteger状況を確認したい配信のID。

レスポンス

レスポンスは配列形式で、以下の情報が含まれます。

添字データ型説明
0Integer配信フェーズを数値で返します。詳細は下表を参照。
1String「引き渡し中」「引き渡し終了」フェーズの補足情報(例: 配信対象数 3054 (37%完了))。

配信フェーズの補足情報について

1 番目の添字に返される数値は以下の意味を持ちます。

数値名称説明
0配信予約中配信予約がされている状態。配信処理はまだ行われていません。
1配信リスト作成中配信時刻になり、配信対象となる会員リストを作成している状態です。
2引き渡し中配信処理を実行している状態です。
3引き渡し終了配信処理が完了した状態です。

サンプルコード

配信予約を行い、配信処理が完了するまで 10 秒ごとにステータスを確認し続ける例です。

<?php

// ... (配信予約までの処理は前のサンプルを参照) ...
$deliveryId = 1; // 実際の配信IDに置き換えてください

$environmentId = getenv("ENV_ID");
$apiUrl = "https://krs.bz/$environmentId/api/v1/get_delivery_status";
$apiToken = getenv("API_TOKEN");

$isFinish = false;
$currentPhase = -1;

while (!$isFinish) {
$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) {
echo 'APIエラー: ', $response_body, PHP_EOL;
break;
}

$response = json_decode($response_body);
// レスポンスは配列形式: [phase, desc]
$newPhase = $response[0];

if ($currentPhase !== $newPhase) {
$currentPhase = $newPhase;
switch ($currentPhase) {
case 0:
echo '配信予約中です', PHP_EOL;
break;
case 1:
echo '配信リスト作成中です', PHP_EOL;
break;
case 2:
echo '引き渡し中です (', $response[1], ')', PHP_EOL;
break;
case 3:
echo '配信処理が完了しました', PHP_EOL;
$isFinish = true;
break;
}
}
if (!$isFinish) {
sleep(10);
}
}