Ce document décrit comment automatiser la gestion et la publication des messages sur un Cisco SMA via l'API REST afin de traiter de grands volumes de messages.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
L'automatisation de la diffusion des messages est essentielle pour les environnements à fort volume d'e-mails. Grâce à l'API, les administrateurs peuvent filtrer des messages spécifiques (par exemple, par expéditeur) et les diffuser par programme, réduisant ainsi le temps d'exploitation et le risque d'erreur humaine par rapport à la gestion manuelle dans l'interface utilisateur graphique.
Afin de gérer la quarantaine, commencez par exécuter une requête initiale pour vérifier la connectivité et confirmer la structure des données.
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
Lors de la récupération des informations, vous pouvez voir le même nombre de messages dans l'appel API et dans l'interface utilisateur graphique.
demande GET du facteur
Messages TEST_QUARANTINE
Générez votre jeton d'authentification Base64 pour l'en-tête d'autorisation :
echo -n 'username:password' | base64
Exécutez la requête curl pour extraire les messages dans un fichier 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
Vérifiez le nombre total de messages reçus :
$ grep "totalCount" response.json | awk '{ print $2, $3}'
{"totalCount": 24},
Utilisez JQ pour filtrer les MID des messages que vous souhaitez diffuser (par exemple, le filtrage par domaine).
$ 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
]
Le nombre de MID peut correspondre si vous effectuez une recherche dans TEST_QUARANTINE dans l'interface utilisateur graphique de SMA.
recherche en quarantaine
résultats de la quarantaine
Filtrez les MID et générez le fichier de données utiles.
$ 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
]
}
Envoyez la demande de libération au 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}}
Lors de la vérification de mail_logs pour les messages libérés, vous pouvez filtrer par grep "release" mail_logs et les mêmes MID que vous filtrez ci-dessus, les mêmes que ceux qui ont été libérés.
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
Si vous effectuez la même recherche pour le domaine que vous avez libéré les messages, vous voyez que la recherche n'a aucun résultat, puisque tous les messages ont été libérés.
mettre en quarantaine les nouveaux résultats
Exécutez à nouveau la commande GET à partir de Retrieve All Messages afin de confirmer que le nombre totalCount a diminué ou que les MID spécifiques ne sont plus présents.
requête GET postman
$ 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
[]
Afin de gérer efficacement les opérations en masse, vous devez comprendre comment gérer des jeux de données volumineux à l'aide de la pagination. Lorsque vous devez traiter un grand nombre de messages, vous devez calculer les paramètres de limite et de décalage pour vous assurer de récupérer l'ensemble complet de données sans dépasser les contraintes de réponse de l'API.
Lorsque vous récupérez un grand volume de messages, utilisez cette logique pour configurer votre requête :
Le processus utilisé dans l'exemple précédent de 10 messages sert de base à toutes les opérations en bloc. Afin de faire évoluer votre flux de travail, il vous suffit d'itérer dans la file d'attente en incrémentant systématiquement le paramètre de décalage. En jouant avec ces valeurs (en ajustant la limite pour définir la taille de votre lot et le décalage pour naviguer dans les pages), vous pouvez récupérer et traiter efficacement l'ensemble de votre file d'attente de quarantaine, quel que soit le nombre total de messages.
| Révision | Date de publication | Commentaires |
|---|---|---|
1.0 |
07-Apr-2026
|
Première publication |