Este documento descreve como automatizar o gerenciamento e a liberação de mensagens em um Cisco SMA através da API REST para processar grandes volumes de mensagens.
A Cisco recomenda que você tenha conhecimento destes tópicos:
Este documento não se restringe a versões de software e hardware específicas.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Automatizar a liberação de mensagens é essencial para ambientes com alto volume de e-mail. Usando a API, os administradores podem filtrar mensagens específicas (por exemplo, por remetente) e liberá-las programaticamente, reduzindo o tempo operacional e o risco de erro humano em comparação ao gerenciamento manual na GUI.
Para gerenciar a quarentena, comece executando uma consulta inicial para verificar a conectividade e confirmar a estrutura de dados.
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
Ao recuperar as informações, você pode ver a mesma quantidade de mensagens na chamada à API e na GUI.
solicitação GET do carteiro
Mensagens de TEST_QUARANTINE
Gere seu token de autenticação Base64 para o cabeçalho de autorização:
echo -n 'username:password' | base64
Execute a solicitação de curva para extrair as mensagens em um arquivo local:
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
Verifique o número total de mensagens recebidas:
$ grep "totalCount" response.json | awk '{ print $2, $3}'
{"totalCount": 24},
Use JQ para filtrar os MIDs das mensagens que você deseja liberar (por exemplo, filtrando por domínio).
$ 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
]
O número de MIDs pode ser correspondente se você fizer uma pesquisa no TEST_QUARANTINE na GUI do SMA.
pesquisa de quarentena
resultados de quarentena
Filtre os MIDs e gere o arquivo de payload.
$ 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
]
}
Envie a solicitação de liberação ao 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}}
Ao verificar mail_logs para mensagens liberadas, você pode filtrar por grep "release" mail_logs e os mesmos MIDs que você filtrar acima, os mesmos que foram liberados.
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
Se você fizer a mesma pesquisa para o domínio em que liberou as mensagens, verá que a pesquisa não tem resultados, já que todas as mensagens foram liberadas.
colocar novos resultados em quarentena
Execute novamente o comando GET em Recuperar todas as mensagens para confirmar que o totalCount diminuiu ou que os MIDs específicos não estão mais presentes.
consulta GET do carteiro
$ 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
[]
Para lidar com operações em massa de forma eficaz, você deve entender como gerenciar grandes conjuntos de dados usando a paginação. Quando você precisa processar um grande número de mensagens, deve calcular os parâmetros de limite e deslocamento para garantir que você recupere o conjunto completo de dados sem exceder as restrições de resposta da API.
Ao recuperar um grande volume de mensagens, use esta lógica para configurar sua solicitação:
O processo usado no exemplo anterior de 10 mensagens serve como base para todas as operações em massa. Para dimensionar o fluxo de trabalho, simplesmente faça a iteração através da fila, incrementando sistematicamente o parâmetro de deslocamento. Ao "reproduzir" com esses valores, ajustando o limite para definir o tamanho do lote e o deslocamento para navegar pelas páginas, você pode efetivamente recuperar e processar toda a fila de quarentena, independentemente da contagem total de mensagens.
| Revisão | Data de publicação | Comentários |
|---|---|---|
1.0 |
07-Apr-2026
|
Versão inicial |