Scopri come l'opzione «API cliente» dell'interfaccia di Clean Mailbox invia le tue email a un URL che ospiti tu e come il tuo server risponde con l'azione da eseguire: non fare nulla, taggare o bloccare.
Funzionalità beta: l'API cliente è attualmente in versione beta. Il suo comportamento e la sua interfaccia possono cambiare e sono possibili alcune imperfezioni. Non esitare a inviarci il tuo feedback.
I filtri di Clean Mailbox si basano sui nostri motori e, con il modulo Regole YARA, sui pattern che scrivi tu. L'API cliente va oltre: è il tuo server a prendere la decisione. Per ogni email ricevuta dal tuo dominio, Clean Mailbox invia il messaggio a un URL HTTPS che ospiti tu e il tuo server risponde indicando cosa farne.
È l'opzione giusta quando la tua decisione dipende da dati che Clean Mailbox non possiede: il tuo CRM (il mittente è un cliente noto?), un elenco interno di fornitori, i tuoi motori di analisi, regole aziendali complesse e così via.
Contenuto delle email: attivando questa opzione, il contenuto completo delle tue email viene inviato al server il cui URL dichiari. Assicurati che questo hosting rispetti i tuoi requisiti di sicurezza e riservatezza (in particolare il GDPR).
Nell'interfaccia di Clean Mailbox, apri il tuo dominio, poi il menu API cliente. Il modulo è riservato agli amministratori del dominio e deve essere attivato sul dominio: se la voce di menu non è visibile, contattaci per farlo attivare.
https://api.example.com/clean-mailbox, poi salva.L'URL deve rispettare queste regole:
#), al massimo 2048 caratteri;Se filtri le connessioni in ingresso per indirizzo IP, chiedi al nostro supporto l'elenco dei server di analisi di Clean Mailbox da autorizzare. Se il segreto viene rigenerato (pulsante Genera un nuovo segreto), quello precedente smette di funzionare immediatamente: aggiorna subito il tuo server.
Clean Mailbox invia un POST HTTPS al tuo URL. Il corpo è l'email grezza, così com'è stata ricevuta (header e poi contenuto, con le codifiche originali: base64, quoted-printable, ecc.), fino a 5 MB. Oltre questo limite l'email non viene inviata all'API e viene consegnata.
| Header | Valore |
|---|---|
Content-Type | message/rfc822 |
X-CMB-API-Version | 1 |
X-CMB-Domain | dominio destinatario interessato |
X-CMB-Recipients | indirizzi dei destinatari di questo dominio, separati da virgole |
X-CMB-Envelope-From | mittente della busta (vuoto per un messaggio di rimbalzo) |
X-CMB-Client-IP | indirizzo IP del server che ha inviato l'email |
X-CMB-Queue-Id | identificativo della coda (utile per segnalarci un caso) |
X-CMB-Timestamp | ora di invio, in secondi Unix |
X-CMB-Signature | v1= seguito dalla firma |
Chiunque conosca il tuo URL può inviargli una richiesta. Per essere certo che una richiesta provenga da Clean Mailbox, il tuo server deve verificare la firma di ogni chiamata:
signature = hex( HMAC-SHA256( secret, timestamp + "." + body ) )
header : X-CMB-Signature: v1=<signature>
dove timestamp è il valore di X-CMB-Timestamp e body l'email grezza ricevuta. Il tuo server deve:
hash_equals in PHP, hmac.compare_digest in Python);401 in entrambi i casi: Clean Mailbox consegna allora l'email, non perdi nulla.Non inserire mai il segreto nell'URL né in un repository pubblico. Senza la verifica della firma, un terzo potrebbe chiamare la tua API fingendo di essere Clean Mailbox.
Il tuo server ha al massimo 2 secondi per rispondere. L'azione viene scelta nella risposta, in JSON di al massimo 4 KB:
{ "action": "none | tag | block", "tag": "[Suspect]", "reason": "testo breve, facoltativo" }
| Risposta del tuo server | Effetto sull'email |
|---|---|
204 No Content (senza corpo), oppure 200 con {"action": "none"} |
Non fare nulla: l'email viene consegnata normalmente. |
200 con {"action": "tag", "tag": "[Suspect]"} |
Taggare: l'email viene consegnata, con [Suspect] aggiunto all'inizio dell'oggetto. |
200 con {"action": "block", "reason": "testo breve"} |
Bloccare: l'email non viene consegnata e il mittente non vede nulla. Una copia viene conservata nella tua quarantena. |
| Qualsiasi altra risposta | L'email viene consegnata, nulla viene modificato. |
action è obbligatorio, in minuscolo (none, tag o block);tag è obbligatorio con l'azione tag: al massimo 100 caratteri, nessun a capo né carattere di controllo (viene scritto nell'oggetto). Si somma ai tag delle regole YARA e dell'antispam, con il tag dell'API in prima posizione;reason è facoltativo, al massimo 200 caratteri: viene mostrato nell'interfaccia per un blocco («API cliente: …»). Non inserirvi dati personali;200 e 204: un 4xx o 5xx non viene mai interpretato come una decisione.L'API non può mai causare la perdita o il trattenimento accidentale di un'email. Solo una risposta «block» valida blocca; in ogni altro caso l'email viene consegnata normalmente:
Un esempio minimo in PHP: verifica la firma, poi risponde in base a una parola chiave di test trovata nell'email. Sostituisci la logica di test con i tuoi controlli.
<?php
const CMB_SECRET = 'INCOLLA_QUI_IL_SEGRETO';
$body = file_get_contents('php://input');
$ts = $_SERVER['HTTP_X_CMB_TIMESTAMP'] ?? '';
$sig = $_SERVER['HTTP_X_CMB_SIGNATURE'] ?? '';
$expected = 'v1=' . hash_hmac('sha256', $ts . '.' . $body, CMB_SECRET);
// Verifica la firma e il timestamp (5 minuti al massimo)
if (!ctype_digit($ts) || abs(time() - (int) $ts) > 300 || !hash_equals($expected, $sig)) {
http_response_code(401);
exit;
}
header('Content-Type: application/json');
if (str_contains($body, '[BLOCK-ME]')) {
echo json_encode(['action' => 'block', 'reason' => 'parola chiave di test']);
} elseif (str_contains($body, '[TAG-ME]')) {
echo json_encode(['action' => 'tag', 'tag' => '[Test API]']);
} else {
echo json_encode(['action' => 'none']);
}
[TAG-ME], poi un'altra con [BLOCK-ME] nell'oggetto.[Test API] e che la seconda venga bloccata (copia in quarantena).Se non succede nulla, probabilmente una delle regole del contratto non è rispettata (firma, certificato, timeout, codice HTTP): l'email viene allora consegnata senza modifiche.
Le email gestite dalla tua API possono essere individuate nell'interfaccia:
reason) che restituisci viene mostrato per ogni blocco.Le regole YARA sono pattern che scrivi nell'interfaccia e che Clean Mailbox valuta direttamente, con gli stati inattiva, audit e attiva. L'API cliente affida la decisione al tuo server, così puoi usare i tuoi dati e la tua logica. Non ha una modalità «audit»: l'azione che restituisci viene applicata. Per testare in sicurezza, rispondi none e registra i log dalla tua parte.
L'email viene consegnata normalmente, senza passare dalla tua decisione. Non viene né trattenuta né persa.
No. Viene conservata nella tua quarantena, dove puoi esaminarla e ripristinarla in caso di falso positivo.
L'URL è attualmente impostato dominio per dominio. Un URL comune per tutti i domini di un account è allo studio per il futuro.
Il nostro supporto può aiutarti ad attivare l'API cliente sul tuo dominio e a convalidarne la configurazione. Lo sviluppo, l'hosting e la disponibilità del tuo server restano di tua responsabilità.
Domande sulla prova, sulla configurazione, sui prezzi o su una partnership? Siamo qui — e rispondiamo in fretta.