Ontdek hoe de optie "Klant-API" van de Clean Mailbox-interface uw e-mail naar een URL stuurt die u zelf host en hoe uw server antwoordt met de te nemen actie: niets doen, taggen of blokkeren.
Bètafunctie: de klant-API bevindt zich momenteel in bèta. Het gedrag en de interface kunnen veranderen en er kunnen nog kinderziektes zijn. Stuur ons gerust uw feedback.
De filters van Clean Mailbox zijn gebaseerd op onze engines en, met de module Yara-regels, op patronen die u zelf schrijft. De Klant-API gaat verder: uw eigen server neemt de beslissing. Voor elke e-mail die uw domein ontvangt, stuurt Clean Mailbox het bericht naar een HTTPS-URL die u host, en uw server antwoordt wat ermee moet gebeuren.
Het is de juiste optie wanneer uw beslissing afhangt van gegevens die Clean Mailbox niet heeft: uw CRM (is de afzender een bekende klant?), een interne leverancierslijst, uw eigen analyse-engines, complexe bedrijfsregels enzovoort.
Inhoud van e-mails: als u deze optie inschakelt, wordt de volledige inhoud van uw e-mail verzonden naar de server waarvan u de URL opgeeft. Zorg dat die hosting aan uw beveiligings- en privacyeisen voldoet (met name de AVG).
Open in de Clean Mailbox-interface uw domein en vervolgens het menu Klant-API. De module is voorbehouden aan domeinbeheerders en moet op het domein zijn ingeschakeld: ziet u het menu-item niet, neem dan contact met ons op om het te laten activeren.
https://api.example.com/clean-mailbox, en sla op.De URL moet aan de volgende regels voldoen:
#), maximaal 2048 tekens;Filtert u inkomende verbindingen op IP-adres, vraag dan ons supportteam om de lijst van analyseservers van Clean Mailbox die u moet toestaan. Als het geheim opnieuw wordt gegenereerd (knop Nieuw geheim genereren), werkt het vorige onmiddellijk niet meer: werk uw server dan direct bij.
Clean Mailbox stuurt een HTTPS-POST naar uw URL. De body is de ruwe e-mail zoals die is ontvangen (headers en daarna inhoud, met de oorspronkelijke coderingen: base64, quoted-printable enz.), tot 5 MB. Daarboven wordt de e-mail niet naar de API gestuurd maar afgeleverd.
| Header | Waarde |
|---|---|
Content-Type | message/rfc822 |
X-CMB-API-Version | 1 |
X-CMB-Domain | betreffende ontvangerdomein |
X-CMB-Recipients | ontvangeradressen van dit domein, door komma's gescheiden |
X-CMB-Envelope-From | envelope-afzender (leeg bij een bouncebericht) |
X-CMB-Client-IP | IP-adres van de server die de e-mail heeft verzonden |
X-CMB-Queue-Id | wachtrij-ID (handig om een geval aan ons te melden) |
X-CMB-Timestamp | verzendtijd, in Unix-seconden |
X-CMB-Signature | v1= gevolgd door de handtekening |
Iedereen die uw URL kent, kan er een verzoek naartoe sturen. Om zeker te weten dat een verzoek van Clean Mailbox komt, moet uw server de handtekening van elke aanroep controleren:
signature = hex( HMAC-SHA256( secret, timestamp + "." + body ) )
header : X-CMB-Signature: v1=<signature>
waarbij timestamp de waarde van X-CMB-Timestamp is en body de ontvangen ruwe e-mail. Uw server moet:
hash_equals in PHP, hmac.compare_digest in Python);401 antwoorden: Clean Mailbox levert de e-mail dan af, u verliest niets.Zet het geheim nooit in de URL of in een openbare repository. Zonder controle van de handtekening kan een derde uw API aanroepen en zich voordoen als Clean Mailbox.
Uw server heeft maximaal 2 seconden om te antwoorden. De actie wordt gekozen in het antwoord, als JSON van maximaal 4 KB:
{ "action": "none | tag | block", "tag": "[Suspect]", "reason": "korte tekst, optioneel" }
| Antwoord van uw server | Effect op de e-mail |
|---|---|
204 No Content (geen body), of 200 met {"action": "none"} |
Niets doen: de e-mail wordt normaal afgeleverd. |
200 met {"action": "tag", "tag": "[Suspect]"} |
Taggen: de e-mail wordt afgeleverd, met [Suspect] toegevoegd aan het begin van het onderwerp. |
200 met {"action": "block", "reason": "short text"} |
Blokkeren: de e-mail wordt niet afgeleverd en de afzender ziet niets. Een kopie blijft bewaard in uw quarantaine. |
| Elk ander antwoord | De e-mail wordt afgeleverd, er wordt niets gewijzigd. |
action is verplicht, in kleine letters (none, tag of block);tag is verplicht bij de actie tag: maximaal 100 tekens, geen regeleinde of stuurteken (het wordt in het onderwerp geschreven). Het wordt opgeteld bij de tags van Yara-regels en antispam, waarbij de tag van de API vooraan staat;reason is optioneel, maximaal 200 tekens: het wordt bij een blokkade in de interface getoond ("Klant-API: …"). Zet er geen persoonsgegevens in;200 en 204 worden in aanmerking genomen: een 4xx of 5xx wordt nooit als beslissing geïnterpreteerd.De API kan er nooit voor zorgen dat een e-mail per ongeluk verloren gaat of wordt tegengehouden. Alleen een geldig antwoord "block" blokkeert; in alle andere gevallen wordt de e-mail normaal afgeleverd:
Een minimaal PHP-voorbeeld: het controleert de handtekening en antwoordt vervolgens op basis van een testtrefwoord in de e-mail. Vervang de testlogica door uw eigen controles.
<?php
const CMB_SECRET = 'PLAK_HIER_HET_GEHEIM';
$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);
// Controleer de handtekening en de timestamp (maximaal 5 minuten)
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' => 'testtrefwoord']);
} elseif (str_contains($body, '[TAG-ME]')) {
echo json_encode(['action' => 'tag', 'tag' => '[API test]']);
} else {
echo json_encode(['action' => 'none']);
}
[TAG-ME] en daarna een andere met [BLOCK-ME] in het onderwerp.[API test] en of de tweede wordt geblokkeerd (kopie in quarantaine).Gebeurt er niets, dan is waarschijnlijk een van de regels van het contract niet nageleefd (handtekening, certificaat, time-out, HTTP-code): de e-mail wordt dan ongewijzigd afgeleverd.
E-mails die door uw API zijn afgehandeld, kunt u in de interface herkennen:
reason) die u terugstuurt, wordt bij elke blokkade getoond.Yara-regels zijn patronen die u in de interface schrijft en die Clean Mailbox zelf evalueert, met de statussen inactief, audit en actief. De Klant-API draagt de beslissing over aan uw server, zodat u uw eigen gegevens en logica kunt gebruiken. Er is geen "audit"-modus: de actie die u teruggeeft wordt toegepast. Om veilig te testen antwoordt u none en logt u aan uw kant.
De e-mail wordt normaal afgeleverd, zonder langs uw beslissing te gaan. Hij wordt niet tegengehouden en gaat niet verloren.
Nee. Hij wordt bewaard in uw quarantaine, waar u hem kunt bekijken en bij een fout-positief kunt herstellen.
De URL wordt momenteel per domein ingesteld. Een gemeenschappelijke URL voor alle domeinen van een account wordt voor later overwogen.
Ons supportteam helpt u graag om de Klant-API op uw domein in te schakelen en de configuratie te valideren. Het ontwikkelen, hosten en beschikbaar houden van uw server blijft uw verantwoordelijkheid.
Vragen over de proefperiode, de installatie, de prijzen of een samenwerking? Wij zijn er — en we antwoorden snel.