이 문서에서는 대량의 메시지를 처리하기 위해 REST API를 통해 Cisco SMA에서 메시지 관리 및 릴리스를 자동화하는 방법에 대해 설명합니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
메시지 릴리스 자동화는 이메일 볼륨이 많은 환경에서 필수적입니다. 관리자는 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
]
MID의 수는 SMA GUI에서 TEST_QUARANTINE으로 검색할 경우 일치할 수 있습니다.
격리 검색
쿼런틴 결과
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를 기준으로 필터링할 수 있습니다. 릴리스된 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
|
최초 릴리스 |