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.
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).
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ć.
https://api.example.com/clean-mailbox, i zapisać.Adres URL musi spełniać następujące zasady:
#), najwyżej 2048 znaków;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.
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łówek | Wartość |
|---|---|
Content-Type | message/rfc822 |
X-CMB-API-Version | 1 |
X-CMB-Domain | domena odbiorcy, której dotyczy wiadomość |
X-CMB-Recipients | adresy odbiorców z tej domeny, rozdzielone przecinkami |
X-CMB-Envelope-From | nadawca koperty (pusty dla wiadomości zwrotnej) |
X-CMB-Client-IP | adres IP serwera, który wysłał wiadomość |
X-CMB-Queue-Id | identyfikator kolejki (przydatny przy zgłaszaniu przypadku) |
X-CMB-Timestamp | czas wysłania, w sekundach Unix |
X-CMB-Signature | v1= a następnie podpis |
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:
hash_equals w PHP, hmac.compare_digest w Pythonie);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.
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ź serwera | Skutek 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. |
action jest wymagane, małymi literami (none, tag lub block);tag jest wymagane przy akcji tag: najwyżej 100 znaków, bez łamania wiersza i znaków sterujących (jest wpisywane do tematu). Dodaje się do oznaczeń reguł Yara i antyspamu, przy czym oznaczenie z API znajduje się na początku;reason jest opcjonalne, najwyżej 200 znaków: przy blokadzie jest wyświetlane w interfejsie („API klienta: …”). Nie należy w nim umieszczać danych osobowych;200 i 204: kod 4xx lub 5xx nigdy nie jest interpretowany jako decyzja.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:
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']);
}
[TAG-ME] w temacie, a następnie drugą z [BLOCK-ME].[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.
Wiadomości obsłużone przez Państwa API można rozpoznać w interfejsie:
reason) jest wyświetlany przy każdej blokadzie.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.
Wiadomość jest dostarczana normalnie, z pominięciem Państwa decyzji. Nie jest wstrzymywana ani tracona.
Nie. Jest przechowywana w Państwa kwarantannie, gdzie można ją przejrzeć i w razie fałszywego wykrycia przywrócić.
Adres URL jest obecnie ustawiany osobno dla każdej domeny. Wspólny adres dla wszystkich domen konta jest rozważany na przyszłość.
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.
Pytania o okres próbny, konfigurację, ceny lub współpracę? Jesteśmy do dyspozycji — i odpowiadamy szybko.