Dostarczaj e-maile transakcyjne i marketingowe przez jedno API.

Wysyłaj resety haseł, potwierdzenia zamówień i kampanie marketingowe z tej samej integracji. Przekaż własny HTML, renderuj szablony React Email lub personalizuj zapisane szablony w momencie wysyłki. Automatyczna suppresja odbić, bezpieczne ponowne próby bez zduplikowanych wysyłek i webhooki dostarczania w czasie rzeczywistym są wbudowane.

Wysyłasz już przez SMTP?

Skieruj swój obecny mailer lub framework na przekaźnik SMTP od Bird, zmieniając tylko dane uwierzytelniające, bez przepisywania kodu aplikacji. Gdy Twój produkt musi też kierować odpowiedzi klientów, wątki wsparcia lub załączniki z powrotem do aplikacji, połącz wysyłkę wychodzącą z pocztą przychodzącą.

Wyślij pierwszego e-maila w pięć minut.

Testuj dostarczanie, zanim skonfigurujesz DNS.

Wbuduj wysyłkę e-maili w swoją aplikację dzięki Bird Email API, korzystając z naszych SDK, endpointu REST, narzędzia CLI lub serwera MCP. Pierwszą testową wiadomość możesz od razu wysłać na wbudowany adres sandbox i sprawdzić obsługę webhooków oraz zachowanie odbić w lokalnym środowisku, zanim skonfigurujesz rekordy DNS dla swojej domeny.

1
2
3
4
5
6
7
8
9
10
// Install the SDK
// npm install @messagebird/sdk

const msg = await bird.email.send({
  from: { email: "onboarding@messagebird.dev", name: "Bird" },
  to: ["delivered@messagebird.dev"],
  subject: "Hello from Bird",
  html: "<p>My first Bird email.</p>",
});
console.log(msg.id, msg.status); // "em_…", "accepted"

Wbudowane zabezpieczenia dla produkcyjnej poczty e-mail.

Zapewnij niezawodne dostarczanie e-maili bez budowania od zera blokad ponownych prób, list odbić czy potoków szablonów.

  1. 01

    Oddzielne reguły dla wiadomości transakcyjnych i marketingowych.

    Wysyłaj resety haseł i kampanie promocyjne przez jedną integrację. Bird automatycznie respektuje rezygnacje z subskrypcji w poczcie marketingowej, a mimo to dostarcza Twoim użytkownikom krytyczne alerty o koncie i potwierdzenia zakupu.

  2. 02

    Szablony, załączniki i zaplanowane wysyłki.

    Renderuj komponenty React Email w swoim kodzie, przekazuj bezpośrednio surowy HTML lub wypełniaj zapisane szablony dynamicznymi danymi odbiorcy w momencie wysyłki. Dołączaj pliki PDF lub obrazy inline i planuj wysyłki do 30 dni naprzód bez utrzymywania własnej kolejki cron.

  3. 03

    Atomowa wysyłka zbiorcza do 100 wiadomości.

    Wyślij do 100 spersonalizowanych e-maili w jednym wywołaniu API, każdy z własnym odbiorcą i zmiennymi szablonu. Bird waliduje całą partię z góry, więc błędny wpis odrzuca całe żądanie, zamiast zostawiać częściową wysyłkę.

  4. 04

    Bezpieczne ponowne próby sieciowe bez zduplikowanych e-maili.

    W środowisku produkcyjnym zdarzają się przekroczenia limitu czasu sieci. Dołącz unikalny klucz żądania, gdy Twój worker wysyła e-mail, a automatyczne ponowne próby zwrócą status pierwotnej wysyłki, zamiast wysyłać klientowi wiadomość dwa razy.

  5. 05

    Podpisane webhooki do śledzenia dostarczania w czasie rzeczywistym.

    Śledź każdą wiadomość od przyjęcia przez serwer i dostarczenia do skrzynki po otwarcia, kliknięcia linków, odbicia i zgłoszenia spamu. Podpisane webhooki chronione przed powtórzeniem używają tego samego formatu zdarzeń w Bird Email, SMS, WhatsApp i Voice.

Wyślij pierwsze żądanie ze swojej aplikacji.

Utwórz konto i klucz API, a następnie wyślij wiadomość testową zgodnie z instrukcją wysyłki.

Rozpocznij

Przejdź od obecnego dostawcy poczty e-mail w jedno popołudnie.

Zachowaj swoje szablony HTML lub React Email i zmień wywołanie wysyłki w kilku linijkach kodu. Przewodniki migracji krok po kroku pokazują, jak przenieść domeny, webhooki i listy suppresji z SendGrid, Amazon SES, Mailgun i Resend.

sendgrid.ts
SendGrid
import sgMail from "@sendgrid/mail";

sgMail.setApiKey(process.env.SENDGRID_API_KEY!);

await sgMail.send({
  from:    "hello@yourdomain.com",
  to:      "delivered@messagebird.dev",
  subject: "Your invite is ready",
  html:    "<p>Welcome aboard, Ada.</p>",
});
bird.ts
Bird
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

await bird.email.send({
  from:    "hello@yourdomain.com",
  to:      ["delivered@messagebird.dev"],
  subject: "Your invite is ready",
  html:    "<p>Welcome aboard, Ada.</p>",
});

Wysyłaj do 100 spersonalizowanych e-maili w jednym żądaniu.

Niezależnie od tego, czy wysyłasz cotygodniowe podsumowania produktu, przypomnienia o płatnościach czy powiadomienia zespołu, możesz zgrupować do 100 niezależnych e-maili w jednym wywołaniu API z personalizacją dla każdego odbiorcy. Bird waliduje całą partię przed jej przyjęciem, więc nieprawidłowa wiadomość odrzuca całe żądanie, zamiast zostawiać częściową wysyłkę, którą trudno naprawić.

digest.ts
202 · batch
import { BirdClient } from "@messagebird/sdk";
import { render } from "@react-email/render";
import { Digest } from "./emails/digest";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

const messages = await Promise.all(
  users.map(async (u) => ({
    from:    "Acme <hello@yourdomain.com>",
    to:      [u.email],
    subject: "Your weekly digest",
    html:    await render(<Digest user={u} />),
  })),
);

const { data: batch, error } = await bird.email
  .sendBatch(messages)
  .safe();

if (error) throw error;
console.log(`queued ${batch.data.length} messages`);

Powiąż dostarczenia z rekordami we własnej bazie danych i kampaniami.

Oznaczaj e-maile maksymalnie 20 tagami, aby analizować wskaźniki dostarczeń, otwarć i odbić według funkcji, ścieżki onboardingu lub kampanii. Możesz też dołączyć do 2 KB własnych metadanych, takich jak ID zamówienia, numer faktury czy ID użytkownika. Wracają one bez zmian w odczytach API i zdarzeniach webhooków, więc Twój backend dopasuje aktualizacje statusu bez utrzymywania tabeli wyszukiwania.

tagged.ts
await bird.email.send({
  from:     "Acme <hello@yourdomain.com>",
  to:       ["delivered@messagebird.dev"],
  subject:  "Your invite is ready",
  html:     "<p>Welcome aboard, Ada.</p>",
  tags:     [{ name: "campaign", value: "spring-2026" }],
  metadata: { user_id: "u_2bX91", order_id: "ord_5512" },
});

Śledź dostarczenia, odbicia i zaangażowanie w czasie rzeczywistym.

Dowiedz się, kiedy serwer poczty klienta przyjmuje e-mail, kiedy skrzynka jest tymczasowo pełna lub dlaczego adres został odbity. Weryfikuj jeden podpis webhooka i obsługuj zdarzenia o tej samej strukturze danych w Email, SMS, Voice i WhatsApp.

app/api/webhooks/bird/route.ts
signed
import { bird } from "@/lib/bird";

export async function POST(req: Request) {
  const event = bird.webhooks.unwrap(
    await req.text(),
    Object.fromEntries(req.headers),
  );

  switch (event.type) {
    case "email.delivered":
      await markDelivered(event.data.email_id);
      break;
    case "email.bounced":
      await flag(event.data.recipient, event.data.bounce_type);
      break;
  }

  return new Response(null, { status: 204 });
}

Twarde odbicia i zgłoszenia spamu automatycznie dodają odbiorcę do Twojej listy suppresji, a rezygnacje z subskrypcji zapisują preferencję odbiorcy, więc kolejne wysyłki automatycznie respektują jego wybór.

  • email.acceptedBird przyjął Twoje żądanie wysyłki i umieścił wiadomość w kolejce do przetworzenia.
  • email.processedWiadomość jest wyrenderowana i gotowa do przekazania serwerowi poczty odbiorcy.
  • email.deliveredSerwer poczty odbiorcy przyjął wiadomość do dostarczenia.
  • email.deferredSerwer odbiorcy tymczasowo odroczył przyjęcie; Bird automatycznie ponawia dostarczenie.
  • email.bouncedDostarczenie nie powiodło się trwale. Zdarzenie zawiera klasyfikację odbicia i przyczynę diagnostyczną.
  • email.openedOdbiorca otworzył e-mail i załadował piksel śledzący.
  • email.clickedOdbiorca kliknął śledzony link w treści e-maila.
  • email.complainedOdbiorca oznaczył e-mail jako spam w swojej skrzynce.
  • email.unsubscribedOdbiorca zrezygnował z subskrypcji przez śledzony link lub nagłówek rezygnacji.

Bezpiecznie testuj odbicia, odroczenia i zgłoszenia przed startem.

Używaj wbudowanych adresów sandbox od Bird, aby symulować udane dostarczenia, twarde i miękkie odbicia, tymczasowe odroczenia, zgłoszenia spamu i odbiorców objętych suppresją, bez wysyłania e-maili do prawdziwych klientów i bez ryzyka dla reputacji nadawcy. Każda testowa wysyłka przechodzi przez rzeczywisty potok zdarzeń i wyzwala podpisane webhooki do Twojego serwera lokalnego lub testowego. Gdy będziesz gotowy na produkcję, zweryfikuj domenę wysyłkową i pozwól, aby zarządzany warmup bezpiecznie zwiększał ruch.

Zapoznaj się z przewodnikami dla deweloperów.

Skorzystaj z przewodnika po wysyłaniu e-maili, aby wysyłać HTML, szablony i załączniki ze swojego backendu, skonfiguruj zdarzenia dostarczenia i webhooki, aby synchronizować status wiadomości z bazą danych, lub użyj przewodnika migracji od dostawcy, aby przejść z SendGrid, Amazon SES, Mailgun lub Resend.

Twórz przepływy pracy wokół wychodzących e-maili.

Gdy Twoja aplikacja wyśle pierwszy e-mail, możesz planować dostarczenia do 30 dni naprzód, anulować wiadomości w kolejce przed ich wysłaniem, dołączać pliki lub obrazy osadzone i testować obsługę odbić w środowisku testowym.

161%

Wzrost wskaźnika otwarć e-maili opisany w historii klienta Zillow.

Przeczytaj historię Zillow

Zbudowane z Bird

Gdy pojawia się właściwy dom, e-mail musi dotrzeć na czas.

Zillow przeniósł czasowo wrażliwe powiadomienia o nieruchomościach do Bird, zyskując możliwość obsługi nagłych wzrostów wysyłki i analitykę do analizy zaangażowania. Zespół odnotował 161% wzrost wskaźnika otwarć w pierwszym miesiącu.

Planujesz migrację lub wysyłkę na większą skalę?

Skontaktuj się z działem sprzedaży

Pytania o wysyłkę e-mail

Czy mogę wysyłać zarówno e-maile transakcyjne, jak i marketingowe?
Tak, oba rodzaje przechodzą przez to samo API wysyłki. Jedyna różnica to pole category, które decyduje o tym, jak stosowane są wyciszenia (suppressions) i rezygnacje z subskrypcji. Wybierz transactional dla resetowania haseł i potwierdzeń, a marketing dla kampanii.
Co się stanie, jeśli żądanie przekroczy limit czasu i ponowię je?
Wysyłaj nagłówek Idempotency-Key z każdym logicznym wysłaniem. Jeśli pierwsze żądanie zakończyło się sukcesem, ale nie otrzymałeś odpowiedzi, ponowienie z tym samym kluczem zwróci oryginalny wynik z nagłówkiem Idempotency-Replay, zamiast wysyłać e-mail po raz drugi.
Czy mogę zaplanować wysyłkę na później?
Ustaw scheduled_at na dowolny czas od 30 sekund do 30 dni w przyszłości. Wysyłka natychmiast otrzymuje status accepted i pozostaje zaplanowana do momentu realizacji, więc możesz ją anulować w dowolnym momencie przed wysłaniem.
Czy mogę załączać pliki?
Tak, jako base64 w tablicy attachments. Aby wyświetlić obraz inline, nadaj mu content_id i odwołaj się do niego w kodzie HTML za pomocą cid:. Pliki źródłowe powinny mieć maksymalnie 15 MB, aby po zakodowaniu wiadomość mieściła się w limicie 20 MB. Typy zawartości wykonywalnej i skryptowej są odrzucane przed wysłaniem.

Porozmawiaj z naszym zespołem e-mail

Zbuduj swoją kolejną integrację e-mail.

Omów wiadomości transakcyjne, wysyłki masowe i zdarzenia dostarczania. Pomożemy Ci zaplanować integrację, wolumen wysyłki i migrację.

Utwórz konto, następnie utwórz klucz API i wyślij wiadomość testową.

Twoje dane
Produkty (opcjonalnie)
Email

Skaluj bez
utraty kontroli.

Organizuj zespoły w obszarach roboczych, kontroluj dostęp do API i śledź zmiany w logach audytu.

Zacznij z Email.
Twórz na wielu kanałach z Bird.

Start building with Bird in minutes.