🔐 Pré-requis
-
Une clé API fournie par Securemail
-
Un système capable d’exécuter des requêtes HTTPS (curl, Python, etc.)
-
Un outil de traitement SIEM capable d’ingérer du JSON
-
URL d’accès :
https://logs.securemail.tech/siem/suivi.php
🔧 Étapes détaillées
1. 🔑 Récupérer votre clé API
Accédez à votre console d'administration e-securemail, sélectionnez le domaine concerné, puis allez dans Suivi > Intégration SIEM.
La clé API sera affichée sur la page, comme illustré dans la capture d'écran ci-dessous :
2. 🧪 Tester une requête curl
Exécute cette commande dans ton terminal (remplace <clé>
par ta clé API) :
bashcurl -H "Authorization: Bearer <clé>" https://logs.securemail.tech/siem/suivi.php
3. 📅 Choisir ta méthode de récupération
Tu as 3 options pour récupérer les messages :
✅ Depuis X secondes :
bashcurl -H "Authorization: Bearer <clé>" "https://logs.securemail.tech/siem/suivi.php?sinceSeconds=3600"
Récupère les messages des 60 dernières minutes.
✅ Depuis une date précise (format ISO 8601) :
bashcurl -H "Authorization: Bearer <clé>" "https://logs.securemail.tech/siem/suivi.php?sinceTime=2024-08-06T12:00:00"
✅ Sur une période donnée :
bashcurl -H "Authorization: Bearer <clé>" "https://logs.securemail.tech/siem/suivi.php?interval=2024-08-05T15:00:00/2024-08-05T16:00:00"
4. ✅ Comprendre la structure du JSON retourné
Structure principale :
json{ "queryEndTime": 1721259183, "data": [ ... ] }
Structure de chaque message :
json{ "message_id": "...", "client_ip": "...", "client_name": "...", "client_country": "...", "helo_name": "...", "stamp_queue": 1721259181, "header_from": "...", "sender": "...", "subject": "...", "message_size": 87809, "recipients": [ {...} ], "message_parts": [ {...} ] }
5. 💡 Exemple de parsing en Python
Voici un petit script Python pour parser la réponse et afficher chaque sujet :
pythonimport requests url = "https://logs.securemail.tech/siem/suivi.php?sinceSeconds=3600" headers = { "Authorization": "Bearer <votre_clé_api>" } response = requests.get(url, headers=headers) data = response.json() for message in data["data"]: print(f"Sujet : {message['subject']}") print(f"Expéditeur : {message['sender']}") print(f"Destinataires : {[r['recipient'] for r in message['recipients']]}") print("-----")
📝 Notes importantes :
-
⏱️ 1 heure max de données par requête
-
🔐 Requêtes obligatoirement en HTTPS GET
-
📛 En cas d'erreur :
-
401
→ Clé API absente ou invalide -
500
→ Erreur serveur
-
-
📅 La valeur
queryEndTime
peut être réutilisé dans le paramètresinceTime
-
🔑 Chaque requête doit contenir un en-tête HTTP appelé
Authorization
, avec le format suivant :Authorization: Bearer VOTRE_CLÉ_API