このドキュメントでは、大量のメッセージを処理するためにREST APIを介してCisco SMAのメッセージ管理とリリースを自動化する方法について説明します。
次の項目に関する知識があることが推奨されます。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
大量のEメールが存在する環境では、メッセージリリースの自動化が不可欠です。APIを使用することにより、管理者は特定のメッセージ(送信者によるなど)をフィルタ処理し、それらをプログラムによって解放できます。これにより、GUIでの手動管理と比較して、運用時間が短縮され、人的エラーのリスクが軽減されます。
隔離を管理するには、最初にクエリを実行して接続を確認し、データ構造を確認します。
https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages?quarantineType=pvo&quarantines=TEST_QUARANTINE&limit=25&offset=0&orderBy=received&orderDir=desc&startDate=2026-03-15T00:00:00.000Z&endDate=2026-03-16T00:00:00.000Z
情報を取得すると、APIコールとGUIで同じ量のメッセージを確認できます。
postman GET要求
TEST_QUARANTINEメッセージ
認証ヘッダー用のBase64認証トークンを生成します。
echo -n 'username:password' | base64
curl要求を実行して、メッセージをローカルファイルに抽出します。
curl -X GET "https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages?quarantineType=pvo&quarantines=TEST_QUARANTINE&limit=25&offset=0&orderBy=received&orderDir=desc&startDate=2026-03-15T00:00:00.000Z&endDate=2026-03-16T00:00:00.000Z" \
-H "Authorization: Basic token-generated-in-base64" \
-H "Accept: application/json" \
-o response.json
受信したメッセージの合計数を確認します。
$ grep "totalCount" response.json | awk '{ print $2, $3}'
{"totalCount": 24},
JQを使用して、解放するメッセージのMIDをフィルタリングします(ドメインによるフィルタリングなど)。
$ jq '[.data[] | select(.attributes.sender | endswith("@labcisco.com")) | .mid]' response.json > mids-labcisco-domain.json
$ cat mids-labcisco-domain.json
[
440,
439,
438,
437,
436,
435,
434,
433,
425,
414
]
SMA GUIでTEST_QUARANTINEを検索する場合は、MIDの数が一致する可能性があります。
検疫検索
検疫結果
MIDをフィルタリングし、ペイロードファイルを生成します。
$ jq '{action:"release", quarantineType:"pvo", quarantineName:"TEST_QUARANTINE", mids:[.data[] | select(.attributes.sender | endswith("@labcisco.com")) | .mid]}' response.json > payload.json
$ cat payload.json
{
"action": "release",
"quarantineType": "pvo",
"quarantineName": "TEST_QUARANTINE",
"mids": [
440,
439,
438,
437,
436,
435,
434,
433,
425,
414
]
}
リリース要求をSMAに送信します。
$ curl -X POST "https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages" \
-H "Authorization: Basic token-generated-in-base64" \
-H "Content-Type: application/json" \
-d @payload.json
{"data": {"action": "release", "totalCount": 10}}
リリースされたメッセージのmail_logsを確認する場合、grep “release” mail_logsと、上記でフィルタリングした同じMID(リリースされたものと同じ)でフィルタリングできます。
Sun Mar 15 11:48:21 2026 Info: MID 436 released from quarantine "TEST_QUARANTINE" (manual) t=1393
Sun Mar 15 11:48:21 2026 Info: MID 425 released from quarantine "TEST_QUARANTINE" (manual) t=1411
Sun Mar 15 11:48:21 2026 Info: MID 414 released from quarantine "TEST_QUARANTINE" (manual) t=2787
Sun Mar 15 11:48:21 2026 Info: MID 433 released from quarantine "TEST_QUARANTINE" (manual) t=1397
Sun Mar 15 11:48:21 2026 Info: MID 440 released from quarantine "TEST_QUARANTINE" (manual) t=1387
Sun Mar 15 11:48:21 2026 Info: MID 439 released from quarantine "TEST_QUARANTINE" (manual) t=1388
Sun Mar 15 11:48:21 2026 Info: MID 434 released from quarantine "TEST_QUARANTINE" (manual) t=1396
Sun Mar 15 11:48:21 2026 Info: MID 437 released from quarantine "TEST_QUARANTINE" (manual) t=1391
Sun Mar 15 11:48:21 2026 Info: MID 435 released from quarantine "TEST_QUARANTINE" (manual) t=1395
Sun Mar 15 11:48:21 2026 Info: MID 438 released from quarantine "TEST_QUARANTINE" (manual) t=1390
メッセージをリリースしたドメインに対して同じ検索を実行すると、すべてのメッセージがリリースされているため、検索の結果が表示されません。
新しい結果の検疫
Retrieve All MessagesからGETコマンドを再実行して、totalCountが減少したか、または特定のMIDが存在しないことを確認します。
postman GETクエリ
$ curl -X GET "https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages?quarantineType=pvo&quarantines=TEST_QUARANTINE&limit=25&offset=0&orderBy=received&orderDir=desc&startDate=2026-03-12T00:00:00.000Z&endDate=2026-03-14T00:00:00.000Z" \
-H "Authorization: Basic token-generated-in-base64" \
-H "Accept: application/json" \
-o response.json
$ jq '[.data[] | select(.attributes.sender | endswith("@labcisco.com")) | .mid]' response.json > mids-labcisco-domain.json
$ cat mids-labcisco-domain.json
[]
バルク操作を効果的に処理するには、ページ区切りを使用して大きなデータセットを管理する方法を理解する必要があります。大量のメッセージを処理する必要がある場合は、制限パラメータとオフセット・パラメータを計算して、API応答制約を超えずにデータの完全なセットを取得できるようにする必要があります。
大量のメッセージを取得する場合は、次のロジックを使用して要求を構成します。
前の10メッセージの例で使用したプロセスは、すべてのバルク操作の基盤として機能します。ワークフローをスケーリングするには、offsetパラメータを体系的に増分してキューを反復します。バッチサイズを定義する制限と、ページ間を移動するオフセットを調整するこれらの値を「再生」することで、メッセージ合計数に関係なく、検疫キュー全体を効果的に取得して処理できます。
| 改定 | 発行日 | コメント |
|---|---|---|
1.0 |
07-Apr-2026
|
初版 |