Funkcje Jak to działa Cennik Kontakt Zaloguj się
Ostatnia aktualizacja: 14 października 2026

API klienta: o losie poczty decyduje Państwa własny serwer

Dowiedz się, jak opcja „API klienta” w interfejsie Clean Mailbox wysyła pocztę na adres URL hostowany przez Państwa i jak serwer odpowiada, jaką akcję wykonać: nic nie robić, oznaczyć lub zablokować.

Funkcja w wersji beta: API klienta jest obecnie w fazie beta. Jego działanie i interfejs mogą się zmieniać i możliwe są drobne niedociągnięcia. Prosimy o przesyłanie opinii.

Do czego służy

Filtry Clean Mailbox opierają się na naszych silnikach, a dzięki modułowi reguł Yara także na wzorcach napisanych przez Państwa. API klienta idzie dalej: decyzję podejmuje Państwa własny serwer. Dla każdej wiadomości odebranej przez domenę Clean Mailbox wysyła ją na hostowany przez Państwa adres HTTPS, a serwer odpowiada, co z nią zrobić.

To właściwa opcja, gdy decyzja zależy od danych, których Clean Mailbox nie ma: Państwa CRM (czy nadawca jest znanym klientem?), wewnętrznej listy dostawców, własnych silników analizy, złożonych reguł biznesowych itd.

Treść wiadomości: po włączeniu tej opcji pełna treść wiadomości jest przesyłana na serwer, którego adres URL Państwo podają. Należy upewnić się, że ten hosting spełnia Państwa wymogi bezpieczeństwa i prywatności (w szczególności RODO).

Podanie adresu URL

W interfejsie Clean Mailbox należy otworzyć domenę, a następnie menu API klienta. Moduł jest dostępny tylko dla administratorów domeny i musi być włączony dla domeny: jeśli pozycja menu nie jest widoczna, prosimy o kontakt, aby ją aktywować.

  1. Należy wpisać adres URL API, na przykład https://api.example.com/clean-mailbox, i zapisać.
  2. Tajny klucz podpisu jest generowany automatycznie i wyświetlany na stronie (przyciski Pokaż, a następnie Kopiuj). Będzie potrzebny w kodzie do weryfikacji źródła żądań.
  3. Aby usunąć opcję, należy wyczyścić pole i zapisać (lub użyć Usuń API): tajny klucz zostaje wtedy usunięty.

Adres URL musi spełniać następujące zasady:

Jeśli filtrują Państwo połączenia przychodzące według adresu IP, należy poprosić nasz zespół wsparcia o listę serwerów analizy Clean Mailbox do dopuszczenia. Jeśli tajny klucz zostanie wygenerowany ponownie (przycisk Wygeneruj nowy klucz), poprzedni natychmiast przestaje działać: należy od razu zaktualizować serwer.

Żądanie wysyłane przez Clean Mailbox

Clean Mailbox wysyła żądanie HTTPS POST na Państwa adres URL. Treścią żądania jest surowa wiadomość w takiej postaci, w jakiej została odebrana (nagłówki, a następnie treść, z oryginalnymi kodowaniami: base64, quoted-printable itd.), do 5 MB. Powyżej tego rozmiaru wiadomość nie jest wysyłana do API, lecz dostarczana.

NagłówekWartość
Content-Typemessage/rfc822
X-CMB-API-Version1
X-CMB-Domaindomena odbiorcy, której dotyczy wiadomość
X-CMB-Recipientsadresy odbiorców z tej domeny, rozdzielone przecinkami
X-CMB-Envelope-Fromnadawca koperty (pusty dla wiadomości zwrotnej)
X-CMB-Client-IPadres IP serwera, który wysłał wiadomość
X-CMB-Queue-Ididentyfikator kolejki (przydatny przy zgłaszaniu przypadku)
X-CMB-Timestampczas wysłania, w sekundach Unix
X-CMB-Signaturev1= a następnie podpis

Weryfikacja podpisu

Każdy, kto zna Państwa adres URL, może wysłać na niego żądanie. Aby mieć pewność, że żądanie pochodzi od Clean Mailbox, serwer musi weryfikować podpis każdego wywołania:

signature = hex( HMAC-SHA256( secret, timestamp + "." + body ) )
header    : X-CMB-Signature: v1=<signature>

gdzie timestamp to wartość X-CMB-Timestamp, a body to odebrana surowa wiadomość. Serwer musi:

  1. ponownie obliczyć podpis i porównać go w stałym czasie (hash_equals w PHP, hmac.compare_digest w Pythonie);
  2. odrzucić żądanie, którego znacznik czasu różni się od bieżącego o więcej niż kilka minut (ochrona przed odtwarzaniem);
  3. w obu przypadkach odpowiedzieć 401: Clean Mailbox dostarcza wtedy wiadomość, nic Państwo nie tracą.

Nigdy nie należy umieszczać tajnego klucza w adresie URL ani w publicznym repozytorium. Bez weryfikacji podpisu osoba trzecia mogłaby wywołać Państwa API, podszywając się pod Clean Mailbox.

Akcje: nic, oznaczenie, blokada

Serwer ma najwyżej 2 sekundy na odpowiedź. Akcja jest wybierana w odpowiedzi, w formacie JSON o rozmiarze do 4 KB:

{ "action": "none | tag | block", "tag": "[Suspect]", "reason": "krótki tekst, opcjonalnie" }
Odpowiedź serweraSkutek dla wiadomości
204 No Content (bez treści) lub 200 z {"action": "none"} Nic nie robić: wiadomość jest dostarczana normalnie.
200 z {"action": "tag", "tag": "[Suspect]"} Oznaczenie: wiadomość jest dostarczana, a na początku tematu dodawane jest [Suspect].
200 z {"action": "block", "reason": "short text"} Blokada: wiadomość nie jest dostarczana, a nadawca nic nie widzi. Kopia jest przechowywana w Państwa kwarantannie.
Każda inna odpowiedź Wiadomość jest dostarczana, nic nie jest zmieniane.

Gwarancje i limity czasu

API nigdy nie może przez pomyłkę spowodować utraty ani wstrzymania wiadomości. Blokuje wyłącznie prawidłowa odpowiedź „block”; w każdym innym przypadku wiadomość jest dostarczana normalnie:

Przykładowy serwer

Minimalny przykład w PHP: weryfikuje podpis, a następnie odpowiada na podstawie testowego słowa kluczowego w wiadomości. Logikę testową należy zastąpić własnymi kontrolami.

<?php
const CMB_SECRET = 'WKLEJ_TUTAJ_TAJNY_KLUCZ';

$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);

// Sprawdź podpis i znacznik czasu (najwyżej 5 minut)
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' => 'testowe słowo kluczowe']);
} elseif (str_contains($body, '[TAG-ME]')) {
    echo json_encode(['action' => 'tag', 'tag' => '[API test]']);
} else {
    echo json_encode(['action' => 'none']);
}

Test konfiguracji

  1. Należy wdrożyć ten skrypt na serwerze HTTPS (z ważnym certyfikatem) i ustawić tajny klucz wyświetlany w interfejsie.
  2. Podać jego adres URL na stronie API klienta domeny.
  3. Wysłać wiadomość na adres w domenie z [TAG-ME] w temacie, a następnie drugą z [BLOCK-ME].
  4. Sprawdzić, czy pierwsza dociera z oznaczeniem [API test], a druga jest blokowana (kopia w kwarantannie).

Jeśli nic się nie dzieje, prawdopodobnie nie jest spełniona któraś z zasad kontraktu (podpis, certyfikat, limit czasu, kod HTTP): wiadomość jest wtedy dostarczana bez zmian.

Śledzenie decyzji

Wiadomości obsłużone przez Państwa API można rozpoznać w interfejsie:

Najczęstsze pytania

Czym różnią się od reguł Yara?

Reguły Yara to wzorce pisane w interfejsie, które Clean Mailbox ocenia samodzielnie, ze statusami nieaktywna, audyt i aktywna. API klienta przekazuje decyzję Państwa serwerowi, dzięki czemu można korzystać z własnych danych i logiki. Nie ma trybu „audytu”: zwrócona akcja jest wykonywana. Aby bezpiecznie testować, należy odpowiadać none i logować po swojej stronie.

Co się stanie, jeśli mój serwer nie działa?

Wiadomość jest dostarczana normalnie, z pominięciem Państwa decyzji. Nie jest wstrzymywana ani tracona.

Czy zablokowana wiadomość przepada?

Nie. Jest przechowywana w Państwa kwarantannie, gdzie można ją przejrzeć i w razie fałszywego wykrycia przywrócić.

Czy mogę ustawić API dla wszystkich domen naraz?

Adres URL jest obecnie ustawiany osobno dla każdej domeny. Wspólny adres dla wszystkich domen konta jest rozważany na przyszłość.

Potrzebna pomoc przy włączeniu opcji?

Nasz zespół wsparcia pomoże włączyć API klienta w Państwa domenie i zweryfikować konfigurację. Tworzenie i hostowanie serwera oraz zapewnienie jego dostępności pozostaje po Państwa stronie.

Skontaktuj się z Clean Mailbox

Zabezpieczmy Państwa skrzynkę pocztową.

Pytania o okres próbny, konfigurację, ceny lub współpracę? Jesteśmy do dyspozycji — i odpowiadamy szybko.

30 dni bezpłatnego okresu próbnego, bez karty
Działa z każdym serwerem pocztowym
Konfiguracja w mniej niż 5 minut
Infrastruktura zlokalizowana we Francji

Obsługujemy wyłącznie język francuski i angielski. Prosimy o kontakt w jednym z tych języków.