Inbound Email
3 min czytania
API Inbound Email pozwala konfigurować reguły routingu przychodzących emaili i uzyskiwać dostęp do przechowywanych wiadomości.
Reguły routingu
Reguły definiują jak przetwarzać przychodzące emaile na podstawie adresu odbiorcy.
Lista reguł
Pobierz wszystkie reguły routingu dla Twojej organizacji.
GET /v1/inbound/routes
Przykładowe żądanie
curl https://api.mailingapi.com/v1/inbound/routes \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
{
"data": [
{
"id": "ir_abc123",
"name": "Skrzynka support",
"match_type": "prefix",
"pattern": "support@",
"action": "store",
"priority": 100,
"status": "active",
"matched_count": 1520,
"last_matched_at": "2024-01-20T15:30:00Z",
"created_at": "2024-01-10T10:00:00Z"
}
]
}
Utwórz regułę
Utwórz nową regułę routingu.
POST /v1/inbound/routes
Body żądania
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
name |
string | Tak | Nazwa reguły (1-100 znaków) |
match_type |
string | Tak | Typ dopasowania (patrz niżej) |
pattern |
string | * |
Wzorzec (* wymagany oprócz catchall) |
action |
string | Tak | Akcja do wykonania (patrz niżej) |
action_config |
object | Zależy | Konfiguracja specyficzna dla akcji |
priority |
integer | Nie | Priorytet 1-1000 (domyślnie: 100, niższy = wyższy priorytet) |
domain_id |
string | Nie | Ogranicz do konkretnej domeny |
description |
string | Nie | Czytelny opis |
filters |
object | Nie | Dodatkowe filtry |
active |
boolean | Nie | Czy reguła aktywna (domyślnie: true) |
Typy dopasowania
| Typ | Opis | Przykład wzorca |
|---|---|---|
exact |
Dokładne dopasowanie emaila |
support@example.com |
prefix |
Dopasowanie początku adresu |
support@ |
suffix |
Dopasowanie końca adresu |
@support.example.com |
| regex | Wyrażenie regularne | ^(help|support)@.* |
| catchall | Dopasowuje wszystkie emaile | (wzorzec nie wymagany) |
Akcje
| Akcja | Opis | Wymagana konfiguracja |
|---|---|---|
webhook |
POST z danymi wiadomości na URL |
action_config.url |
forward |
Przekaż na inny adres email |
action_config.to |
store |
Przechowaj do pobrania przez API | (opcjonalna konfiguracja retencji) |
drop |
Odrzuć wiadomość | (brak) |
Przykłady konfiguracji akcji
Webhook:
{
"action_config": {
"url": "https://twojaapka.pl/inbound-webhook",
"secret": "opcjonalny-sekret-hmac",
"include_attachments": true
}
}
Forward:
{
"action_config": {
"to": ["odbiorca@example.com"],
"preserve_attachments": true
}
}
Store:
{
"action_config": {
"retention_days": 7,
"notify_url": "https://twojaapka.pl/powiadomienie",
"notify_include_body": false
}
}
Przykładowe żądanie
curl -X POST https://api.mailingapi.com/v1/inbound/routes \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Support webhook",
"match_type": "prefix",
"pattern": "support@",
"action": "webhook",
"action_config": {
"url": "https://twojaapka.pl/inbound",
"include_attachments": true
},
"priority": 10
}'
Odpowiedź
{
"id": "ir_new456",
"name": "Support webhook",
"match_type": "prefix",
"pattern": "support@",
"action": "webhook",
"action_config": {
"url": "https://twojaapka.pl/inbound",
"include_attachments": true
},
"priority": 10,
"status": "active",
"created_at": "2024-01-20T16:00:00Z"
}
Pobierz regułę
Pobierz szczegóły konkretnej reguły.
GET /v1/inbound/routes/{route_id}
Przykładowe żądanie
curl https://api.mailingapi.com/v1/inbound/routes/ir_abc123 \
-H "Authorization: Bearer $API_KEY"
Aktualizuj regułę
Zaktualizuj istniejącą regułę routingu.
PUT /v1/inbound/routes/{route_id}
Body żądania
Dowolne pola z tworzenia (oprócz organization_id).
Przykładowe żądanie
curl -X PUT https://api.mailingapi.com/v1/inbound/routes/ir_abc123 \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"priority": 5,
"status": "paused"
}'
Usuń regułę
Usuń regułę routingu.
DELETE /v1/inbound/routes/{route_id}
Przykładowe żądanie
curl -X DELETE https://api.mailingapi.com/v1/inbound/routes/ir_abc123 \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
204 No Content
Wiadomości przychodzące
Dostęp do przechowywanych wiadomości przychodzących (dla reguł z akcją store).
Lista wiadomości
Pobierz przechowywane wiadomości z filtrowaniem i paginacją.
GET /v1/inbound/messages
Parametry zapytania
| Parametr | Typ | Opis |
|---|---|---|
limit |
integer | Wyników na stronę (domyślnie: 50, max: 100) |
offset |
integer | Ile wyników pominąć |
from |
string | Filtruj po adresie nadawcy (dokładne dopasowanie) |
to |
string | Filtruj po adresie odbiorcy (dokładne dopasowanie) |
since |
string | Wiadomości od tej daty (ISO 8601) |
until |
string | Wiadomości do tej daty (ISO 8601) |
domain_id |
string | Filtruj po ID domeny |
is_spam |
boolean | Filtruj po oznaczeniu spam |
Przykładowe żądanie
curl "https://api.mailingapi.com/v1/inbound/messages?limit=25&since=2024-01-01T00:00:00Z" \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
{
"data": [
{
"id": "im_abc123",
"from": "nadawca@example.com",
"to": ["support@twojadomena.pl"],
"subject": "Pomoc z zamówieniem",
"received_at": "2024-01-20T15:30:00Z",
"spam_score": 1.2,
"is_spam": false,
"has_attachments": true
}
],
"meta": {
"total": 150,
"limit": 25,
"offset": 0
}
}
Pobierz wiadomość
Pobierz pełne szczegóły przechowanej wiadomości.
GET /v1/inbound/messages/{message_id}
Przykładowe żądanie
curl https://api.mailingapi.com/v1/inbound/messages/im_abc123 \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
{
"id": "im_abc123",
"from": "nadawca@example.com",
"to": ["support@twojadomena.pl"],
"subject": "Pomoc z zamówieniem",
"html": "<p>Potrzebuję pomocy z zamówieniem #12345...</p>",
"text": "Potrzebuję pomocy z zamówieniem #12345...",
"headers": {
"message-id": "<abc@example.com>",
"date": "Mon, 20 Jan 2024 15:30:00 +0000"
},
"attachments": [
{
"filename": "zrzut.png",
"content_type": "image/png",
"size": 45230
}
],
"authentication": {
"spf": "pass",
"dkim": "pass",
"dmarc": "pass"
},
"spam_score": 1.2,
"is_spam": false,
"thread_id": "thread_xyz",
"received_at": "2024-01-20T15:30:00Z"
}
Pobierz wątek
Pobierz wszystkie wiadomości należące do tego samego wątku konwersacji.
GET /v1/inbound/messages/thread/{thread_id}
Przykładowe żądanie
curl https://api.mailingapi.com/v1/inbound/messages/thread/thread_xyz \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
{
"data": [
{
"id": "im_abc123",
"from": "nadawca@example.com",
"subject": "Pomoc z zamówieniem",
"received_at": "2024-01-20T15:30:00Z"
},
{
"id": "im_def456",
"from": "nadawca@example.com",
"subject": "Re: Pomoc z zamówieniem",
"received_at": "2024-01-20T16:45:00Z"
}
]
}
Pobierz załącznik
Pobierz presigned URL do pobrania załącznika. URL jest ważny przez 1 godzinę.
GET /v1/inbound/messages/{message_id}/attachments/{filename}
Przykładowe żądanie
curl https://api.mailingapi.com/v1/inbound/messages/im_abc123/attachments/zrzut.png \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
{
"url": "https://storage.example.com/attachments/...",
"filename": "zrzut.png",
"content_type": "image/png",
"expires_at": "2024-01-20T16:30:00Z"
}
Usuń wiadomość
Usuń przechowaną wiadomość wraz z załącznikami. Operacja jest nieodwracalna.
DELETE /v1/inbound/messages/{message_id}
Przykładowe żądanie
curl -X DELETE https://api.mailingapi.com/v1/inbound/messages/im_abc123 \
-H "Authorization: Bearer $API_KEY"
Odpowiedź
204 No Content
Kody błędów
| Kod | Opis |
|---|---|
route_not_found |
ID reguły nie znalezione |
message_not_found |
ID wiadomości nie znalezione |
attachment_not_found |
Załącznik nie znaleziony |
invalid_action |
Nieprawidłowy typ akcji |
invalid_match_type |
Nieprawidłowy typ dopasowania |
missing_action_config |
Wymagana konfiguracja akcji nie dostarczona |
invalid_pattern |
Nieprawidłowy wzorzec regex |