Email API
Biblioteki
Obecnie nie wydaliśmy jeszcze żadnych wrapperów API, ale planujemy to zrobić w niedalekiej przyszłości. Wyślij e-mail na api@forwardemail.net, jeśli chcesz zostać powiadomiony, gdy zostanie wydany wrapper API dla konkretnego języka programowania. W międzyczasie możesz użyć tych rekomendowanych bibliotek do zapytań HTTP w swojej aplikacji lub po prostu użyć curl, jak w poniższych przykładach.
| Język | Biblioteka |
|---|---|
| Ruby | Faraday |
| Python | requests |
| Java | OkHttp |
| PHP | guzzle |
| JavaScript | superagent (jesteśmy maintainerami) |
| Node.js | superagent (jesteśmy maintainerami) |
| Go | net/http |
| .NET | RestSharp |
Base URI
Aktualna ścieżka bazowego URI HTTP to: https://fe.tiamati.email.
Uwierzytelnianie
Wszystkie punkty końcowe wymagają uwierzytelnienia za pomocą Basic Authorization. Obsługujemy dwie metody uwierzytelniania:
Uwierzytelnianie tokenem API (zalecane dla większości punktów końcowych)
Ustaw swój klucz API jako wartość "username" z pustym hasłem:
curl https://fe.tiamati.email/v1/account \
-u API_TOKEN:
Zwróć uwagę na dwukropek (:) po tokenie API – wskazuje on na puste hasło w formacie Basic Auth.
Uwierzytelnianie poświadczeniami aliasu (dla wychodzącej poczty e-mail)
Punkt końcowy Create outbound SMTP email obsługuje również uwierzytelnianie za pomocą adresu e-mail aliasu i wygenerowanego hasła aliasu:
curl -X POST https://fe.tiamati.email/v1/emails \
-u "alias@yourdomain.com:your_generated_password" \
-d "to=recipient@example.com" \
-d "subject=Hello" \
-d "text=Test email"
Ta metoda jest przydatna podczas wysyłania e-maili z aplikacji, które już używają poświadczeń SMTP i umożliwia płynne przejście z SMTP na nasze API.
Punkty końcowe tylko dla aliasów
Punkty końcowe Alias Contacts, Alias Calendars, Alias Messages oraz Alias Folders wymagają poświadczeń aliasu i nie obsługują uwierzytelniania tokenem API.
Nie martw się – poniżej znajdziesz przykłady, jeśli nie jesteś pewien, co to jest.
Błędy
Jeśli wystąpią jakiekolwiek błędy, ciało odpowiedzi żądania API będzie zawierać szczegółową wiadomość o błędzie.
| Kod | Nazwa |
|---|---|
| 200 | OK |
| 400 | Nieprawidłowe żądanie |
| 401 | Nieautoryzowany |
| 403 | Zabronione |
| 404 | Nie znaleziono |
| 429 | Zbyt wiele żądań |
| 500 | Błąd wewnętrzny serwera |
| 501 | Niezaimplementowano |
| 502 | Zła brama |
| 503 | Usługa niedostępna |
| 504 | Przekroczenie limitu czasu bramy |
Tip
Jeśli otrzymasz kod statusu 5xx (co nie powinno się zdarzyć), skontaktuj się z nami pod adresem api@forwardemail.net, a pomożemy Ci natychmiast rozwiązać problem.
Lokalizacja
Nasza usługa jest przetłumaczona na ponad 25 różnych języków. Wszystkie komunikaty odpowiedzi API są tłumaczone na ostatnio wykryty język użytkownika wykonującego żądanie API. Możesz to nadpisać, przekazując niestandardowy nagłówek Accept-Language. Zachęcamy do wypróbowania tego za pomocą rozwijanego menu języków na dole tej strony.
Paginacja
Note
Od 1 listopada 2024 r. punkty końcowe API dla List domains oraz List domain aliases będą domyślnie zwracać maksymalnie 1000 wyników na stronę. Jeśli chcesz wcześniej skorzystać z tego zachowania, możesz dodać ?paginate=true jako dodatkowy parametr zapytania do adresu URL punktu końcowego.
Paginacja jest obsługiwana przez wszystkie punkty końcowe API, które zwracają listy wyników.
Wystarczy podać właściwości zapytania page (oraz opcjonalnie limit).
Właściwość page powinna być liczbą większą lub równą 1. Jeśli podasz limit (również liczbę), minimalna wartość to 10, a maksymalna 50 (chyba że zaznaczono inaczej).
| Parametr zapytania | Wymagany | Typ | Opis |
|---|---|---|---|
page |
Nie | Liczba | Strona wyników do zwrócenia. Jeśli nie zostanie określona, wartość page będzie 1. Musi być liczbą większą lub równą 1. |
limit |
Nie | Liczba | Liczba wyników do zwrócenia na stronę. Domyślnie 10, jeśli nie zostanie określona. Musi być liczbą większą lub równą 1 i mniejszą lub równą 50. |
| Aby określić, czy dostępne są kolejne wyniki, udostępniamy następujące nagłówki odpowiedzi HTTP (które można analizować, aby programowo paginować): |
| Nagłówek odpowiedzi HTTP | Przykład | Opis |
|---|---|---|
X-Page-Count |
X-Page-Count: 3 |
Całkowita liczba dostępnych stron. |
X-Page-Current |
X-Page-Current: 1 |
Aktualna strona zwróconych wyników (np. na podstawie parametru zapytania page). |
X-Page-Size |
X-Page-Size: 10 |
Całkowita liczba wyników na zwróconej stronie (np. na podstawie parametru zapytania limit oraz faktycznie zwróconych wyników). |
X-Item-Count |
X-Item-Count: 30 |
Całkowita liczba dostępnych elementów we wszystkich stronach. |
Link |
Link: <https://api.forwardemail.net/v1/emails?page=1>; rel="prev", <https://api.forwardemail.net/v1/emails?page=3>; rel="next", <https://api.forwardemail.net/v1/emails?page=3; rel="last", https://api.forwardemail.net/v1/emails?page=1; rel="first" |
Udostępniamy nagłówek odpowiedzi HTTP Link, który można analizować jak pokazano w przykładzie. Jest to podobne do GitHub (np. nie wszystkie wartości będą podane, jeśli nie są istotne lub dostępne, np. "next" nie będzie podany, jeśli nie ma kolejnej strony). |
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/domains/example.com/aliases?page=2&pagination=true \
-u API_TOKEN:
Logi
Pobierz logi
Nasze API umożliwia programowe pobieranie logów dla Twojego konta. Wysłanie zapytania do tego endpointu spowoduje przetworzenie wszystkich logów dla Twojego konta i przesłanie ich do Ciebie w załączniku (skompresowany plik Gzip z arkuszem CSV) po zakończeniu.
Pozwala to na tworzenie zadań w tle za pomocą Cron job lub korzystając z naszego oprogramowania do harmonogramowania zadań Node.js Bree, aby otrzymywać logi kiedy tylko chcesz. Zwróć uwagę, że ten endpoint jest ograniczony do 10 zapytań dziennie.
Załącznik ma nazwę w formacie małych liter email-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz, a sam e-mail zawiera krótkie podsumowanie pobranych logów. Możesz także pobierać logi w dowolnym momencie z Moje konto → Logi
GET /v1/logs/download
| Parametr w zapytaniu | Wymagany | Typ | Opis |
|---|---|---|---|
domain |
Nie | String (FQDN) | Filtrowanie logów według w pełni kwalifikowanej domeny ("FQDN"). Jeśli nie podasz tego parametru, pobrane zostaną logi ze wszystkich domen. |
q |
Nie | String | Wyszukiwanie logów według e-maila, domeny, nazwy aliasu, adresu IP lub daty (format M/Y, M/D/YY, M-D, M-D-YY lub M.D.YY). |
bounce_category |
Nie | String | Wyszukiwanie logów według konkretnej kategorii odbicia (np. blocklist). |
response_code |
Nie | Number | Wyszukiwanie logów według konkretnego kodu odpowiedzi błędu (np. 421 lub 550). |
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/logs/download \
-u API_TOKEN:
Przykładowe zadanie Cron (codziennie o północy):
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download -u API_TOKEN: &>/dev/null
Zwróć uwagę, że możesz użyć serwisów takich jak Crontab.guru do weryfikacji składni wyrażenia zadania cron.
Przykładowe zadanie Cron (codziennie o północy i z logami za poprzedni dzień):
Dla MacOS:
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date -v-1d -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null
Dla Linux i Ubuntu:
0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null
Konto
Utwórz konto
POST /v1/account
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
email |
Tak | String (Email) | Adres e-mail |
password |
Tak | String | Hasło |
Przykładowe zapytanie:
curl -X POST https://fe.tiamati.email/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
Pobierz konto
GET /v1/account
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/account \
-u API_TOKEN:
Aktualizuj konto
PUT /v1/account
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
email |
Nie | String (Email) | Adres e-mail |
given_name |
Nie | String | Imię |
family_name |
Nie | String | Nazwisko |
avatar_url |
Nie | String (URL) | Link do zdjęcia awatara |
Przykładowe zapytanie:
curl -X PUT https://fe.tiamati.email/v1/account \
-u API_TOKEN: \
-d "email=user%40gmail.com"
Kontakty aliasów (CardDAV)
Note
W przeciwieństwie do innych endpointów API, te wymagają Uwierzytelnienia z "username" równym nazwie użytkownika aliasu oraz "password" równym wygenerowanemu hasłu aliasu jako nagłówki Basic Authorization. [!WARNING] Ta sekcja endpointów jest w trakcie opracowywania i zostanie udostępniona (mamy nadzieję) w 2024 roku. W międzyczasie prosimy o korzystanie z klienta IMAP z rozwijanego menu "Apps" w nawigacji naszej strony internetowej.
Lista kontaktów
GET /v1/contacts
Wkrótce dostępne
Utwórz kontakt
POST /v1/contacts
Wkrótce dostępne
Pobierz kontakt
GET /v1/contacts/:id
Wkrótce dostępne
Aktualizuj kontakt
PUT /v1/contacts/:id
Wkrótce dostępne
Usuń kontakt
DELETE /v1/contacts/:id
Wkrótce dostępne
Alias Kalendarze (CalDAV)
Note
W przeciwieństwie do innych endpointów API, te wymagają Uwierzytelnienia z "username" równym nazwie użytkownika aliasu oraz "password" równym wygenerowanemu hasłu aliasu jako nagłówki Basic Authorization.
Warning
Ta sekcja endpointów jest w trakcie opracowywania i zostanie udostępniona (mamy nadzieję) w 2024 roku. W międzyczasie prosimy o korzystanie z klienta IMAP z rozwijanego menu "Apps" w nawigacji naszej strony internetowej.
Lista kalendarzy
GET /v1/calendars
Wkrótce dostępne
Utwórz kalendarz
POST /v1/calendars
Wkrótce dostępne
Pobierz kalendarz
GET /v1/calendars/:id
Wkrótce dostępne
Aktualizuj kalendarz
PUT /v1/calendars/:id
Wkrótce dostępne
Usuń kalendarz
DELETE /v1/calendars/:id
Wkrótce dostępne
Alias Wiadomości (IMAP/POP3)
Note
W przeciwieństwie do innych endpointów API, te wymagają Uwierzytelnienia z "username" równym nazwie użytkownika aliasu oraz "password" równym wygenerowanemu hasłu aliasu jako nagłówki Basic Authorization.
Warning
Ta sekcja endpointów jest w trakcie opracowywania i zostanie udostępniona (mamy nadzieję) w 2024 roku. W międzyczasie prosimy o korzystanie z klienta IMAP z rozwijanego menu "Apps" w nawigacji naszej strony internetowej.
Proszę upewnić się, że wykonałeś instrukcje konfiguracji dla swojej domeny.
Instrukcje te można znaleźć w naszej sekcji FAQ Czy obsługujecie odbieranie e-maili przez IMAP?.
Lista i wyszukiwanie wiadomości
GET /v1/messages
Wkrótce dostępne
Utwórz wiadomość
Note
To NIE wyśle e-maila – po prostu doda wiadomość do folderu Twojej skrzynki pocztowej (np. jest to podobne do polecenia IMAP APPEND). Jeśli chcesz wysłać e-mail, zobacz Utwórz wychodzący e-mail SMTP poniżej. Po utworzeniu wychodzącego e-maila SMTP możesz dołączyć jego kopię za pomocą tego endpointu do skrzynki aliasu w celach przechowywania.
POST /v1/messages
Wkrótce dostępne
Pobierz wiadomość
GET /v1/messages/:id
Wkrótce dostępne
Aktualizuj wiadomość
PUT /v1/messages/:id
Wkrótce dostępne
Usuń wiadomość
DELETE /v1/messages:id
Wkrótce dostępne
Alias Foldery (IMAP/POP3)
Tip
Endpointy folderów z ścieżką folderu /v1/folders/:path jako ich endpointem są wymienne z ID folderu :id. Oznacza to, że możesz odwoływać się do folderu zarówno przez jego path, jak i id.
Warning
Ta sekcja endpointów jest w trakcie opracowywania i zostanie udostępniona (mamy nadzieję) w 2024 roku. W międzyczasie prosimy o korzystanie z klienta IMAP z rozwijanego menu "Apps" w nawigacji naszej strony internetowej.
Lista folderów
GET /v1/folders
Wkrótce dostępne
Utwórz folder
POST /v1/folders
Wkrótce dostępne
Pobierz folder
GET /v1/folders/:id
Wkrótce dostępne
Aktualizuj folder
PUT /v1/folders/:id
Wkrótce dostępne
Usuń folder
DELETE /v1/folders/:id
Wkrótce dostępne
Kopiuj folder
POST /v1/folders/:id/copy
Wkrótce dostępne
Wychodzące e-maile
Proszę upewnić się, że wykonałeś instrukcje konfiguracji dla swojej domeny.
Instrukcje te można znaleźć pod adresem Moje konto → Domeny → Ustawienia → Konfiguracja wychodzącego SMTP. Musisz zapewnić konfigurację DKIM, Return-Path oraz DMARC dla wysyłania wychodzących wiadomości SMTP z Twojej domeny.
Pobierz limit wychodzących wiadomości SMTP
Jest to proste endpoint, który zwraca obiekt JSON zawierający count i limit dla liczby dziennych wychodzących wiadomości SMTP na konto.
GET /v1/emails/limit
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/emails/limit \
-u API_TOKEN:
Lista wychodzących wiadomości SMTP
Zwróć uwagę, że ten endpoint nie zwraca wartości właściwości dla message, headers ani rejectedErrors wiadomości email.
Aby zwrócić te właściwości i ich wartości, użyj proszę endpointu Pobierz wiadomość z ID wiadomości.
GET /v1/emails
| Parametr w zapytaniu | Wymagany | Typ | Opis |
|---|---|---|---|
q |
Nie | String (obsługuje RegExp) | Wyszukiwanie wiadomości po metadanych |
domain |
Nie | String (obsługuje RegExp) | Wyszukiwanie wiadomości po nazwie domeny |
sort |
Nie | String | Sortowanie po określonym polu (poprzedź pojedynczym myślnikiem -, aby sortować w odwrotnym kierunku). Domyślnie created_at, jeśli nie ustawiono. |
page |
Nie | Number | Zobacz Paginacja dla więcej informacji |
limit |
Nie | Number | Zobacz Paginacja dla więcej informacji |
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/emails?limit=1 \
-u API_TOKEN:
Utwórz wychodzącą wiadomość SMTP
Nasze API do tworzenia wiadomości jest inspirowane i wykorzystuje konfigurację opcji wiadomości Nodemailera. Prosimy odnieść się do konfiguracji wiadomości Nodemailer dla wszystkich poniższych parametrów ciała.
Z wyjątkiem envelope i dkim (które ustawiamy automatycznie za Ciebie), obsługujemy wszystkie opcje Nodemailera. Automatycznie ustawiamy opcje disableFileAccess i disableUrlAccess na true ze względów bezpieczeństwa.
Powinieneś przekazać albo pojedynczą opcję raw z surową pełną wiadomością email wraz z nagłówkami lub przekazać poszczególne opcje parametrów ciała poniżej.
Ten endpoint API automatycznie zakoduje emoji, jeśli zostaną znalezione w nagłówkach (np. temat Subject: 🤓 Hello zostanie automatycznie przekonwertowany na Subject: =?UTF-8?Q?=F0=9F=A4=93?= Hello). Naszym celem było stworzenie bardzo przyjaznego dla programistów i odpornego na błędy API email.
Uwierzytelnianie: Ten endpoint obsługuje zarówno uwierzytelnianie tokenem API, jak i uwierzytelnianie poświadczeniami aliasu. Szczegóły znajdziesz w sekcji Uwierzytelnianie powyżej.
POST /v1/emails
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
from |
Nie | String (Email) | Adres email nadawcy (musi istnieć jako alias domeny). |
to |
Nie | String lub Array | Lista odbiorców w nagłówku "To", rozdzielona przecinkami lub tablica odbiorców. |
cc |
Nie | String lub Array | Lista odbiorców w nagłówku "Cc", rozdzielona przecinkami lub tablica odbiorców. |
bcc |
Nie | String lub Array | Lista odbiorców w nagłówku "Bcc", rozdzielona przecinkami lub tablica odbiorców. |
subject |
Nie | String | Temat wiadomości email. |
text |
Nie | String lub Buffer | Wersja tekstowa wiadomości. |
html |
Nie | String lub Buffer | Wersja HTML wiadomości. |
attachments |
Nie | Array | Tablica obiektów załączników (zobacz pola wspólne Nodemailera). |
sender |
Nie | String | Adres email dla nagłówka "Sender" (zobacz bardziej zaawansowane pola Nodemailera). |
replyTo |
Nie | String | Adres email dla nagłówka "Reply-To". |
inReplyTo |
Nie | String | Message-ID, na który wiadomość odpowiada. |
references |
Nie | String lub Array | Lista Message-ID rozdzielona spacjami lub tablica Message-ID. |
attachDataUrls |
Nie | Boolean | Jeśli true, konwertuje obrazy data: w treści HTML wiadomości na osadzone załączniki. |
watchHtml |
Nie | String | Specyficzna wersja HTML dla Apple Watch (zgodnie z dokumentacją Nodemailera, najnowsze zegarki nie wymagają ustawiania tego). |
amp |
Nie | String | Specyficzna wersja HTML dla AMP4EMAIL (zobacz przykład Nodemailera). |
icalEvent |
Nie | Object | Wydarzenie iCalendar do użycia jako alternatywna treść wiadomości (zobacz wydarzenia kalendarza Nodemailera). |
alternatives |
Nie | Array | Tablica alternatywnej treści wiadomości (zobacz alternatywne treści Nodemailera). |
encoding |
Nie | String | Kodowanie dla tekstu i HTML (domyślnie "utf-8", obsługuje także "hex" i "base64"). |
raw |
Nie | String lub Buffer | Niestandardowa wygenerowana wiadomość w formacie RFC822 do użycia (zamiast generowanej przez Nodemailera – zobacz niestandardowe źródło Nodemailera). |
textEncoding |
Nie | String | Kodowanie wymuszane dla wartości tekstowych (może być "quoted-printable" lub "base64"). Domyślnie jest to najbliższa wykryta wartość (dla ASCII użyj "quoted-printable"). |
priority |
Nie | String | Poziom priorytetu wiadomości (może być "high", "normal" (domyślnie) lub "low"). Wartość "normal" nie ustawia nagłówka priorytetu (to domyślne zachowanie). Jeśli ustawiono "high" lub "low", nagłówki X-Priority, X-MSMail-Priority i Importance zostaną ustawione odpowiednio. |
headers |
Nie | Object lub Array | Obiekt lub tablica dodatkowych nagłówków do ustawienia (zobacz niestandardowe nagłówki Nodemailera). |
messageId |
Nie | String | Opcjonalna wartość Message-ID dla nagłówka "Message-ID" (domyślna wartość zostanie automatycznie wygenerowana, jeśli nie ustawiono – wartość powinna spełniać specyfikację RFC2822). |
date |
Nie | String lub Date | Opcjonalna wartość daty, która zostanie użyta, jeśli nagłówek Date będzie brakował po parsowaniu, w przeciwnym razie zostanie użyty aktualny czas UTC, jeśli nie ustawiono. Nagłówek daty nie może być więcej niż 30 dni do przodu względem aktualnego czasu. |
list |
Nie | Object | Opcjonalny obiekt nagłówków List-* (zobacz nagłówki list Nodemailera). |
Przykładowe żądanie (token API):
curl -X POST https://fe.tiamati.email/v1/emails \
-u API_TOKEN: \
-d "from=alias@example.com" \
-d "to=user%40gmail.com" \
-d "subject=test" \
-d "text=test"
Przykładowe żądanie (dane aliasu):
curl -X POST https://fe.tiamati.email/v1/emails \
-u "alias@example.com:GENERATED_PASSWORD" \
-d "from=alias@example.com" \
-d "to=user%40gmail.com" \
-d "subject=test" \
-d "text=test"
Przykładowe żądanie (surowy email):
curl -X POST https://fe.tiamati.email/v1/emails \
-u API_TOKEN: \
-d "raw=`cat file.eml`"
Pobierz wychodzący email SMTP
GET /v1/emails/:id
Przykładowe żądanie:
curl https://fe.tiamati.email/v1/emails/:id \
-u API_TOKEN:
Usuń wychodzący email SMTP
Usunięcie emaila ustawi status na "rejected" (i w konsekwencji nie będzie przetwarzany w kolejce) tylko wtedy, gdy aktualny status to jeden z "pending", "queued" lub "deferred". Możemy automatycznie usuwać emaile po 30 dniach od ich utworzenia i/lub wysłania – dlatego powinieneś przechowywać kopię wychodzących emaili SMTP w swoim kliencie, bazie danych lub aplikacji. Możesz odwoływać się do naszej wartości ID emaila w swojej bazie danych, jeśli chcesz – ta wartość jest zwracana zarówno przez endpointy Create email, jak i Retrieve email.
DELETE /v1/emails/:id
Przykładowe żądanie:
curl -X DELETE https://fe.tiamati.email/v1/emails/:id \
-u API_TOKEN:
Domeny
Tip
Endpointy domen z nazwą domeny /v1/domains/:domain_name jako ich endpointem są wymienne z ID domeny :domain_id. Oznacza to, że możesz odwoływać się do domeny albo przez jej name, albo przez id.
Lista domen
Note
Od 1 listopada 2024 endpointy API dla List domains i List domain aliases będą domyślnie zwracać maksymalnie 1000 wyników na stronę. Jeśli chcesz wcześniej skorzystać z tego zachowania, możesz dodać ?paginate=true jako dodatkowy parametr zapytania do URL endpointu. Zobacz Pagination po więcej informacji.
GET /v1/domains
| Parametr zapytania | Wymagany | Typ | Opis |
|---|---|---|---|
q |
Nie | String (obsługuje RegExp) | Wyszukaj domeny po nazwie |
name |
Nie | String (obsługuje RegExp) | Wyszukaj domeny po nazwie |
sort |
Nie | String | Sortuj według konkretnego pola (poprzedź pojedynczym myślnikiem -, aby sortować w odwrotnym kierunku). Domyślnie created_at, jeśli nie ustawiono. |
page |
Nie | Number | Zobacz Pagination po więcej informacji |
limit |
Nie | Number | Zobacz Pagination po więcej informacji |
Przykładowe żądanie:
curl https://fe.tiamati.email/v1/domains \
-u API_TOKEN:
Utwórz domenę
POST /v1/domains
| Parametr w ciele żądania | Wymagany | Typ | Opis |
|---|---|---|---|
domain |
Tak | String (FQDN lub IP) | W pełni kwalifikowana nazwa domeny ("FQDN") lub adres IP |
team_domain |
Nie | String (ID domeny lub nazwa domeny; FQDN) | Automatycznie przypisz tę domenę do tego samego zespołu co inna domena. Oznacza to, że wszyscy członkowie z tej domeny zostaną przypisani jako członkowie zespołu, a plan zostanie automatycznie ustawiony na team. Możesz ustawić to na "none", jeśli chcesz to wyraźnie wyłączyć, ale nie jest to konieczne. |
plan |
Nie | String (enumeracja) | Typ planu (musi być "free", "enhanced_protection" lub "team", domyślnie "free" lub aktualny płatny plan użytkownika, jeśli jest) |
catchall |
Nie | String (adresy email rozdzielone) lub Boolean | Utwórz domyślny alias catch-all, domyślnie true (jeśli true, użyje adresu email użytkownika API jako odbiorcy, jeśli false, nie zostanie utworzony catch-all). Jeśli podano String, jest to lista adresów email rozdzielona (oddzielona znakiem nowej linii, spacją i/lub przecinkiem) |
has_adult_content_protection |
Nie | Boolean | Czy włączyć ochronę przed treściami dla dorosłych w skanerze spamu dla tej domeny |
has_phishing_protection |
Nie | Boolean | Czy włączyć ochronę przed phishingiem w skanerze spamu dla tej domeny |
has_executable_protection |
Nie | Boolean | Czy włączyć ochronę przed plikami wykonywalnymi w skanerze spamu dla tej domeny |
has_virus_protection |
Nie | Boolean | Czy włączyć ochronę przed wirusami w skanerze spamu dla tej domeny |
has_recipient_verification |
Nie | Boolean | Globalna domyślna wartość domeny, czy wymagać od odbiorców aliasów kliknięcia w link weryfikacyjny emaila, aby wiadomości mogły przejść |
ignore_mx_check |
Nie | Boolean | Czy zignorować sprawdzanie rekordu MX domeny podczas weryfikacji. Jest to głównie dla użytkowników z zaawansowanymi regułami konfiguracji wymiany MX, którzy muszą zachować swoje istniejące rekordy MX i przekierować je do naszych. |
retention_days |
Nie | Number | Liczba całkowita między 0 a 30, odpowiadająca liczbie dni przechowywania wychodzących emaili SMTP po ich pomyślnym dostarczeniu lub trwałym błędzie. Domyślnie 0, co oznacza, że wychodzące emaile SMTP są natychmiast usuwane i redagowane dla Twojego bezpieczeństwa. |
bounce_webhook |
Nie | String (URL) lub Boolean (false) | URL webhooka http:// lub https:// wybrany przez Ciebie, na który będą wysyłane webhooki odbić. Wykonamy żądanie POST do tego URL z informacjami o niepowodzeniach SMTP (np. miękkie lub twarde błędy – abyś mógł zarządzać swoimi subskrybentami i programowo zarządzać wychodzącymi emailami). |
max_quota_per_alias |
Nie | String | Maksymalny limit pamięci dla aliasów na tej domenie. Wprowadź wartość taką jak "1 GB", która zostanie przetworzona przez bytes. |
Przykładowe zapytanie:
curl -X POST https://fe.tiamati.email/v1/domains \
-u API_TOKEN: \
-d domain=example.com \
-d plan=free
Pobierz domenę
GET /v1/domains/example.com
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/domains/example.com \
-u API_TOKEN:
Zweryfikuj rekordy domeny
GET /v1/domains/example.com/verify-records
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/domains/example.com/verify-records \
-u API_TOKEN:
Zweryfikuj rekordy SMTP domeny
GET /v1/domains/example.com/verify-smtp
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/domains/example.com/verify-smtp \
-u API_TOKEN:
Lista haseł catch-all dla całej domeny
GET /v1/domains/example.com/catch-all-passwords
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/domains/example.com/catch-all-passwords \
-u API_TOKEN:
Utwórz hasło catch-all dla całej domeny
POST /v1/domains/example.com/catch-all-passwords
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
new_password |
Nie | String | Twoje własne nowe hasło do użycia jako hasło catch-all dla całej domeny. Możesz pozostawić to pole puste lub całkowicie pominąć w ciele zapytania API, jeśli chcesz otrzymać losowo wygenerowane i silne hasło. |
description |
Nie | String | Opis wyłącznie do celów organizacyjnych. |
Przykładowe zapytanie:
curl BASE_URL/v1/domains/example.com/catch-all-passwords \
-u API_TOKEN:
Usuń hasło catch-all dla całej domeny
DELETE /v1/domains/example.com/catch-all-passwords/:token_id
Przykładowe zapytanie:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/catch-all-passwords/:token_id \
-u API_TOKEN:
Aktualizuj domenę
PUT /v1/domains/example.com
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
smtp_port |
Nie | String lub Number | Niestandardowy port do konfiguracji przekazywania SMTP (domyślnie "25") |
has_adult_content_protection |
Nie | Boolean | Czy włączyć ochronę przed treściami dla dorosłych w skanerze spamu dla tej domeny |
has_phishing_protection |
Nie | Boolean | Czy włączyć ochronę przed phishingiem w skanerze spamu dla tej domeny |
has_executable_protection |
Nie | Boolean | Czy włączyć ochronę przed plikami wykonywalnymi w skanerze spamu dla tej domeny |
has_virus_protection |
Nie | Boolean | Czy włączyć ochronę antywirusową w skanerze spamu dla tej domeny |
has_recipient_verification |
Nie | Boolean | Globalna domyślna wartość dla domeny określająca, czy odbiorcy aliasów muszą kliknąć link weryfikacyjny w e-mailu, aby wiadomości mogły być dostarczane |
ignore_mx_check |
Nie | Boolean | Czy zignorować sprawdzanie rekordu MX dla domeny podczas weryfikacji. Jest to głównie dla użytkowników z zaawansowanymi regułami konfiguracji wymiany MX, którzy muszą zachować istniejącą wymianę MX i przekierować ją do naszej. |
retention_days |
Nie | Number | Liczba całkowita między 0 a 30, określająca liczbę dni przechowywania wychodzących wiadomości SMTP po ich pomyślnym dostarczeniu lub trwałym błędzie. Domyślnie 0, co oznacza, że wychodzące wiadomości SMTP są natychmiast usuwane i redagowane dla Twojego bezpieczeństwa. |
bounce_webhook |
Nie | String (URL) lub Boolean (false) | URL webhooka http:// lub https:// wybrany przez Ciebie, na który będą wysyłane webhooki zwrotne. Wysłamy żądanie POST na ten URL z informacjami o niepowodzeniach wychodzących wiadomości SMTP (np. miękkie lub twarde błędy – abyś mógł zarządzać swoimi subskrybentami i programowo zarządzać wychodzącą pocztą). |
max_quota_per_alias |
Nie | String | Maksymalny limit pamięci dla aliasów na tej domenie. Wprowadź wartość taką jak "1 GB", która zostanie przetworzona przez bytes. |
Przykładowe żądanie:
curl -X PUT https://fe.tiamati.email/v1/domains/example.com \
-u API_TOKEN:
Usuń domenę
DELETE /v1/domains/:domain_name
Przykładowe żądanie:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name \
-u API_TOKEN:
Zaproszenia
Zaakceptuj zaproszenie do domeny
GET /v1/domains/:domain_name/invites
Przykładowe żądanie:
curl https://fe.tiamati.email/v1/domains/:domain_name/invites \
-u API_TOKEN:
Utwórz zaproszenie do domeny
POST /v1/domains/example.com/invites
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
email |
Tak | String (Email) | Adres e-mail do zaproszenia na listę członków domeny |
group |
Tak | String (enumerowalny) | Grupa, do której zostanie dodany użytkownik w członkostwie domeny (może to być "admin" lub "user") |
Przykładowe żądanie:
curl -X POST https://fe.tiamati.email/v1/domains/example.com/invites \
-u API_TOKEN: \
-d "email=user%40gmail.com" \
-d group=admin
Important
Jeśli użytkownik zapraszany jest już zaakceptowanym członkiem innych domen, których członkiem jest administrator zapraszający, zaproszenie zostanie automatycznie zaakceptowane i nie zostanie wysłany e-mail.
Usuń zaproszenie do domeny
DELETE /v1/domains/:domain_name/invites
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
email |
Tak | String (Email) | Adres e-mail do usunięcia z listy członków domeny |
Przykładowe żądanie:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/invites \
-u API_TOKEN:
Członkowie
Aktualizuj członka domeny
PUT /v1/domains/example.com/members/:member_id
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
group |
Tak | String (enumerowalny) | Grupa, do której zostanie zaktualizowany użytkownik w członkostwie domeny (może to być "admin" lub "user") |
Przykładowe żądanie:
curl -X PUT https://fe.tiamati.email/v1/domains/example.com/members/:member_id \
-u API_TOKEN:
Usuń członka domeny
DELETE /v1/domains/:domain_name/members/:member_id
Przykładowe żądanie:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/members/:member_id \
-u API_TOKEN:
Aliasy
Wygeneruj hasło aliasu
Zauważ, że jeśli nie wyślesz instrukcji e-mailem, nazwa użytkownika i hasło będą w ciele odpowiedzi JSON udanego żądania w formacie { username: 'alias@yourdomain.com', password: 'some-generated-password' }.
POST /v1/domains/example.com/aliases/:alias_id/generate-password
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
new_password |
Nie | String | Twoje niestandardowe nowe hasło do użycia dla aliasu. Możesz pozostawić to pole puste lub całkowicie pominąć w ciele żądania API, jeśli chcesz otrzymać losowo wygenerowane i silne hasło. |
password |
Nie | String | Istniejące hasło aliasu, aby zmienić hasło bez usuwania istniejącej skrzynki IMAP (zobacz opcję is_override poniżej, jeśli nie masz już istniejącego hasła). |
is_override |
Nie | Boolean | UŻYWAJ Z OSTROŻNOŚCIĄ: To całkowicie nadpisze istniejące hasło aliasu i bazę danych, trwale usuwając istniejącą pamięć IMAP i resetując bazę danych e-mail SQLite aliasu. Proszę wykonać kopię zapasową, jeśli to możliwe, jeśli masz istniejącą skrzynkę powiązaną z tym aliasem. |
emailed_instructions |
Nie | String | Adres e-mail, na który zostaną wysłane hasło aliasu i instrukcje konfiguracji. |
Przykładowe zapytanie:
curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id/generate-password \
-u API_TOKEN:
Lista aliasów domeny
Note
Od 1 listopada 2024 roku punkty końcowe API dla List domains oraz List domain aliases będą domyślnie zwracać maksymalnie 1000 wyników na stronę. Jeśli chcesz wcześniej włączyć to zachowanie, możesz dodać ?paginate=true jako dodatkowy parametr zapytania do URL punktu końcowego. Zobacz Pagination po więcej informacji.
GET /v1/domains/example.com/aliases
| Parametr zapytania | Wymagany | Typ | Opis |
|---|---|---|---|
q |
Nie | String (obsługa RegExp) | Wyszukaj aliasy w domenie po nazwie, etykiecie lub odbiorcy |
name |
Nie | String (obsługa RegExp) | Wyszukaj aliasy w domenie po nazwie |
recipient |
Nie | String (obsługa RegExp) | Wyszukaj aliasy w domenie po odbiorcy |
sort |
Nie | String | Sortuj według konkretnego pola (poprzedź pojedynczym myślnikiem -, aby sortować w odwrotnym kierunku). Domyślnie created_at, jeśli nie ustawiono. |
page |
Nie | Number | Zobacz Pagination po więcej informacji |
limit |
Nie | Number | Zobacz Pagination po więcej informacji |
Przykładowe zapytanie:
curl https://fe.tiamati.email/v1/domains/example.com/aliases?pagination=true \
-u API_TOKEN:
Utwórz nowy alias domeny
POST /v1/domains/example.com/aliases
| Parametr w ciele zapytania | Wymagany | Typ | Opis |
|---|---|---|---|
name |
Nie | String | Nazwa aliasu (jeśli nie podano lub jest pusta, zostanie wygenerowany losowy alias) |
recipients |
Nie | String lub Array | Lista odbiorców (musi być to ciąg znaków rozdzielony znakami nowej linii/spacją/przecinkiem lub tablica poprawnych adresów email, w pełni kwalifikowanych nazw domen ("FQDN"), adresów IP i/lub URL webhooków – jeśli nie podano lub jest pusta tablica, jako odbiorca zostanie ustawiony adres email użytkownika wykonującego zapytanie API) |
description |
Nie | String | Opis aliasu |
labels |
Nie | String lub Array | Lista etykiet (musi być to ciąg znaków rozdzielony znakami nowej linii/spacją/przecinkiem lub tablica) |
has_recipient_verification |
Nie | Boolean | Wymagaj od odbiorców kliknięcia linku weryfikacyjnego w emailu, aby wiadomości mogły być przekazywane (domyślnie ustawienie domeny, jeśli nie ustawiono jawnie w ciele zapytania) |
is_enabled |
Nie | Boolean | Czy włączyć lub wyłączyć ten alias (jeśli wyłączony, wiadomości nie będą nigdzie kierowane, ale zwrócą poprawne kody statusu). Jeśli podano wartość, zostanie przekonwertowana na boolean za pomocą boolean) |
error_code_if_disabled |
Nie | Number (może być 250, 421 lub 550) |
Przychodzące wiadomości na ten alias zostaną odrzucone, jeśli is_enabled jest false z kodem 250 (ciche dostarczenie donikąd, np. czarna dziura lub /dev/null), 421 (odrzucenie tymczasowe; ponawianie przez około 5 dni) lub 550 (stała porażka i odrzucenie). Domyślnie 250. |
has_imap |
Nie | Boolean | Czy włączyć lub wyłączyć przechowywanie IMAP dla tego aliasu (jeśli wyłączone, przychodzące wiadomości nie będą zapisywane w przechowywaniu IMAP. Jeśli podano wartość, zostanie przekonwertowana na boolean za pomocą boolean) |
has_pgp |
Nie | Boolean | Czy włączyć lub wyłączyć szyfrowanie OpenPGP dla zaszyfrowanego przechowywania email IMAP/POP3/CalDAV/CardDAV używając public_key aliasu. |
public_key |
Nie | String | Publiczny klucz OpenPGP w formacie ASCII Armor (kliknij tutaj, aby zobaczyć przykład; np. klucz GPG dla support@forwardemail.net). Dotyczy tylko, jeśli has_pgp jest ustawione na true. Dowiedz się więcej o szyfrowaniu end-to-end w naszym FAQ. |
max_quota |
Nie | String | Maksymalny limit przechowywania dla tego aliasu. Pozostaw puste, aby zresetować do aktualnego limitu domeny lub wpisz wartość, np. "1 GB", która zostanie przetworzona przez bytes. Tę wartość mogą zmieniać tylko administratorzy domeny. |
vacation_responder_is_enabled |
Nie | Boolean | Czy włączyć lub wyłączyć automatyczną odpowiedź urlopową. |
vacation_responder_start_date |
Nie | String | Data rozpoczęcia automatycznej odpowiedzi urlopowej (jeśli włączona i nie ustawiono daty rozpoczęcia, zakłada się, że już trwa). Obsługujemy formaty dat takie jak MM/DD/YYYY, YYYY-MM-DD oraz inne formaty dzięki inteligentnemu parsowaniu za pomocą dayjs. |
vacation_responder_end_date |
Nie | String | Data zakończenia automatycznej odpowiedzi urlopowej (jeśli włączona i nie ustawiono daty zakończenia, zakłada się, że trwa bez końca i odpowiada zawsze). Obsługujemy formaty dat takie jak MM/DD/YYYY, YYYY-MM-DD oraz inne formaty dzięki inteligentnemu parsowaniu za pomocą dayjs. |
vacation_responder_subject |
Nie | String | Temat w formacie tekstowym dla automatycznej odpowiedzi urlopowej, np. "Poza biurem". Używamy striptags, aby usunąć wszelki HTML. |
vacation_responder_message |
Nie | String | Treść wiadomości w formacie tekstowym dla automatycznej odpowiedzi urlopowej, np. "Będę poza biurem do lutego.". Używamy striptags, aby usunąć wszelki HTML. |
Przykładowe żądanie:
curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases \
-u API_TOKEN:
Pobierz alias domeny
Możesz pobrać alias domeny za pomocą jego wartości id lub name.
GET /v1/domains/:domain_name/aliases/:alias_id
Przykładowe żądanie:
curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
GET /v1/domains/:domain_name/aliases/:alias_name
Przykładowe żądanie:
curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_name \
-u API_TOKEN:
Aktualizuj alias domeny
PUT /v1/domains/example.com/aliases/:alias_id
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
name |
Nie | String | Nazwa aliasu |
recipients |
Nie | String lub Tablica | Lista odbiorców (musi być ciągiem znaków rozdzielonym znakami nowej linii/spacją/przecinkiem lub tablicą zawierającą poprawne adresy e-mail, w pełni kwalifikowane nazwy domen ("FQDN"), adresy IP i/lub adresy URL webhooków) |
description |
Nie | String | Opis aliasu |
labels |
Nie | String lub Tablica | Lista etykiet (musi być ciągiem znaków rozdzielonym znakami nowej linii/spacją/przecinkiem lub tablicą) |
has_recipient_verification |
Nie | Boolean | Wymaga od odbiorców kliknięcia linku weryfikacyjnego w e-mailu, aby wiadomości mogły być przekazywane dalej (domyślnie ustawienie domeny, jeśli nie jest wyraźnie określone w ciele żądania) |
is_enabled |
Nie | Boolean | Czy włączyć lub wyłączyć ten alias (jeśli wyłączony, e-maile nie będą kierowane nigdzie, ale zwrócą poprawne kody statusu). Jeśli wartość zostanie podana, zostanie przekonwertowana na boolean za pomocą boolean) |
error_code_if_disabled |
Nie | Liczba (może być 250, 421 lub 550) |
Przychodzące e-maile do tego aliasu zostaną odrzucone, jeśli is_enabled jest false z kodem 250 (ciche dostarczenie donikąd, np. czarna dziura lub /dev/null), 421 (odrzucenie tymczasowe; ponawianie próby przez około 5 dni) lub 550 (stała awaria i odrzucenie). Domyślnie 250. |
has_imap |
Nie | Boolean | Czy włączyć lub wyłączyć przechowywanie IMAP dla tego aliasu (jeśli wyłączone, przychodzące e-maile nie będą zapisywane w przechowywaniu IMAP. Jeśli wartość zostanie podana, zostanie przekonwertowana na boolean za pomocą boolean) |
has_pgp |
Nie | Boolean | Czy włączyć lub wyłączyć szyfrowanie OpenPGP dla zaszyfrowanego przechowywania e-maili IMAP/POP3/CalDAV/CardDAV używając public_key aliasu. |
public_key |
Nie | String | Publiczny klucz OpenPGP w formacie ASCII Armor (kliknij tutaj, aby zobaczyć przykład; np. klucz GPG dla support@forwardemail.net). Dotyczy tylko, jeśli has_pgp jest ustawione na true. Dowiedz się więcej o szyfrowaniu end-to-end w naszym FAQ. |
max_quota |
Nie | String | Maksymalny limit pamięci dla tego aliasu. Pozostaw puste, aby zresetować do aktualnego limitu domeny lub wpisz wartość taką jak "1 GB", która zostanie przetworzona przez bytes. Tę wartość mogą zmieniać tylko administratorzy domeny. |
vacation_responder_is_enabled |
Nie | Boolean | Czy włączyć lub wyłączyć automatyczną odpowiedź urlopową. |
vacation_responder_start_date |
Nie | String | Data rozpoczęcia automatycznej odpowiedzi urlopowej (jeśli włączona i nie ustawiono daty rozpoczęcia, przyjmuje się, że już się rozpoczęła). Obsługujemy formaty dat takie jak MM/DD/YYYY, YYYY-MM-DD oraz inne formaty dzięki inteligentnemu parsowaniu za pomocą dayjs. |
vacation_responder_end_date |
Nie | String | Data zakończenia automatycznej odpowiedzi urlopowej (jeśli włączona i nie ustawiono daty zakończenia, przyjmuje się, że trwa ona bezterminowo). Obsługujemy formaty dat takie jak MM/DD/YYYY, YYYY-MM-DD oraz inne formaty dzięki inteligentnemu parsowaniu za pomocą dayjs. |
vacation_responder_subject |
Nie | String | Temat w formacie tekstowym dla automatycznej odpowiedzi urlopowej, np. "Poza biurem". Używamy striptags, aby usunąć wszelki HTML. |
vacation_responder_message |
Nie | String | Treść wiadomości w formacie tekstowym dla automatycznej odpowiedzi urlopowej, np. "Będę poza biurem do lutego.". Używamy striptags, aby usunąć wszelki HTML. |
Przykładowe zapytanie:
curl -X PUT https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id \
-u API_TOKEN:
Usuń alias domeny
DELETE /v1/domains/:domain_name/aliases/:alias_id
Przykładowe zapytanie:
curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
-u API_TOKEN:
Szyfruj
Pozwalamy na szyfrowanie rekordów nawet w darmowym planie bez dodatkowych kosztów. Prywatność nie powinna być funkcją, powinna być wbudowana we wszystkie aspekty produktu. Na prośbę wielu użytkowników w dyskusji Privacy Guides oraz na naszych zgłoszeniach GitHub dodaliśmy tę funkcję.
Szyfruj rekord TXT
POST /v1/encrypt
| Parametr w ciele | Wymagany | Typ | Opis |
|---|---|---|---|
input |
Tak | String | Dowolny poprawny, niezaszyfrowany rekord TXT Forward Email |
Przykładowe zapytanie:
curl -X POST https://fe.tiamati.email/v1/encrypt \
-d "input=user@gmail.com"