Zasób obsługujący komendy związane z serwerami mailowymi.

Endpointy obsługujące żądanie:

  • https://api.5ways.com - Ekspert

Uprawnienia:

  • Ekspert, specjalista, stażysta - POST

API eksperta

POST /rest/mail_command

Wywołuje wykonanie danej komendy.

Identyfikatory komend: \ COMMAND_ADD_TO_RECEIVE_QUEUE = 2 - dodanie do kolejki odebrania \ COMMAND_ADD_TO_SEND_QUEUE = 3 - dodanie do kolejki wysyłania \ COMMAND_ADD_BACKFILL_TO_RECEIVE_QUEUE = 4 - pobranie wiadomości wstecz na żądanie (per folder systemowy)

Request
{
  "MailCommand": {
    "command_id": 2,
    "mail_server_id": 2
  }
}
Zwracane dane
// HTTP/1.1 201 CREATED

Pobieranie wiadomości wstecz (backfill)

Komenda COMMAND_ADD_BACKFILL_TO_RECEIVE_QUEUE = 4 zleca asynchroniczne pobranie starszych wiadomości ze wskazanej skrzynki dla wybranego folderu systemowego, od podanej daty. Zakres dzielony jest na zadania miesięczne i przetwarzany kolejką odbioru (nie synchronicznie). Zapisywane są wyłącznie wiadomości pasujące do reguły wybranego folderu — pozostałe są odrzucane (nie trafiają do systemu).

Pola żądania:

  • command_id - 4
  • mail_server_id - identyfikator skrzynki (w obrębie organizacji)
  • folder_name - folder systemowy; dozwolone: CLIENTS, OFFICES, PROVIDERS, LEADS, OTHERS
  • fetch_after_date - data początkowa YYYY-MM-DD (nie z przyszłości; bez dolnego limitu)

Wymagane uprawnienie RBAC odpowiadające wybranemu folderowi (np. mailbox.crm_folders.clients dla CLIENTS, mailbox.personal_mailbox dla OTHERS).

Request
{
  "MailCommand": {
    "command_id": 4,
    "mail_server_id": 2,
    "folder_name": "CLIENTS",
    "fetch_after_date": "2025-01-01"
  }
}
Zwracane dane
// HTTP/1.1 201 CREATED  — zadania dodane do kolejki
// HTTP/1.1 400 BAD REQUEST — niedozwolony folder (spoza CLIENTS/OFFICES/PROVIDERS/LEADS/OTHERS)
{
    "status": "error",
    "errorMessages": {
        "folder_name": "Folder not allowed."
    }
}
// HTTP/1.1 400 BAD REQUEST — niepoprawny format daty (oczekiwane Y-m-d)
{
    "status": "error",
    "errorMessages": {
        "fetch_after_date": "Invalid date format."
    }
}
// HTTP/1.1 400 BAD REQUEST — data z przyszłości
{
    "status": "error",
    "errorMessages": {
        "fetch_after_date": "Date cannot be in the future."
    }
}
// HTTP/1.1 400 BAD REQUEST — nie udało się dodać zadań backfillu do kolejki
{
    "status": "error",
    "errorMessages": {
        "backfill": "Could not enqueue backfill request."
    }
}
// HTTP/1.1 403 FORBIDDEN — brak uprawnienia RBAC do wybranego folderu
// HTTP/1.1 404 NOT FOUND — skrzynka nie istnieje w organizacji
// HTTP/1.1 409 CONFLICT — backfill tej skrzynki i folderu już trwa (guard idempotencji)
{
    "status": "error",
    "errorMessages": "A backfill for this mailbox and folder is already in progress."
}

Ponowne zlecenie dla tej samej skrzynki i folderu, gdy poprzedni backfill jeszcze trwa, jest odrzucane kodem 409 (idempotencja) — z komunikatem jak wyżej. Wiadomości już obecne w systemie są pomijane (bez duplikatów).