Recapita email transazionali e di marketing da un'unica API.

Invia reimpostazioni della password, ricevute degli ordini e campagne di marketing dalla stessa integrazione. Passa il tuo HTML, esegui il rendering di template React Email o personalizza template salvati al momento dell'invio, con soppressione automatica dei bounce, nuovi tentativi sicuri che evitano invii duplicati e webhook di recapito in tempo reale integrati.

Invii già tramite SMTP?

Collega il tuo mailer o framework esistente al relay SMTP di Bird sostituendo le credenziali, senza riscrivere il codice dell'applicazione. Se il tuo prodotto deve anche instradare nell'app le risposte dei clienti, i thread di assistenza o gli allegati, abbina l'invio in uscita all'email in entrata.

Invia la tua prima email in cinque minuti.

Testa il recapito prima di configurare il DNS.

Integra l'email in uscita nella tua app con la API Email di Bird tramite i nostri SDK, l'endpoint REST, la CLI o MCP. Puoi inviare subito il primo messaggio di prova a un indirizzo sandbox integrato e verificare la gestione dei webhook e il comportamento dei bounce in sviluppo locale, prima di configurare i record DNS del tuo dominio.

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"

Protezioni integrate per l'email in produzione.

Garantisci un recapito email affidabile senza dover creare da zero lock per i nuovi tentativi, liste di bounce o pipeline di template.

  1. 01

    Regole separate per email transazionali e di marketing.

    Invia reimpostazioni della password e campagne promozionali tramite un'unica integrazione. Bird applica automaticamente le preferenze di disiscrizione alle email di marketing e continua a recapitare ai tuoi utenti gli avvisi critici sull'account e le ricevute.

  2. 02

    Template, allegati e invii programmati.

    Esegui il rendering dei componenti React Email nel tuo codice, passa direttamente HTML grezzo o compila template salvati con dati dinamici del destinatario al momento dell'invio. Allega PDF o immagini inline e programma invii fino a 30 giorni in anticipo senza gestire una tua coda cron.

  3. 03

    Invio in batch atomico fino a 100 messaggi.

    Invia fino a 100 email personalizzate con una sola chiamata API, ciascuna con il proprio destinatario e le proprie variabili di template. Bird convalida l'intero batch in anticipo, così una voce non valida fa rifiutare la richiesta in modo pulito invece di lasciare un invio parziale.

  4. 04

    Nuovi tentativi di rete sicuri, senza email duplicate.

    In produzione i timeout di rete capitano. Allega una chiave di richiesta univoca quando il tuo worker invia un'email: i nuovi tentativi automatici restituiranno lo stato dell'invio originale invece di inviare due volte l'email al cliente.

  5. 05

    Webhook firmati per monitorare il recapito in tempo reale.

    Segui ogni messaggio dall'accettazione da parte del server e dal recapito in casella fino ad aperture, clic sui link, bounce e segnalazioni di spam. I webhook firmati e protetti dai replay usano lo stesso formato di evento per Email, SMS, WhatsApp e Voice di Bird.

Effettua la prima richiesta dalla tua applicazione.

Crea un account e una chiave API, poi segui la guida all'invio con un destinatario di test.

Inizia

Migra dal tuo attuale provider email in un pomeriggio.

Mantieni i tuoi template HTML o React Email e sostituisci la chiamata di invio con poche righe di codice. Guide di migrazione passo passo ti accompagnano nel trasferimento di domini, webhook e liste di soppressione da SendGrid, Amazon SES, Mailgun e 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>",
});

Invia fino a 100 email personalizzate in una sola richiesta.

Che tu invii riepiloghi settimanali del prodotto, promemoria di fatturazione o notifiche al team, puoi raggruppare fino a 100 email indipendenti in una sola chiamata API, personalizzate per ogni destinatario. Bird convalida l'intero batch prima di accettarlo, così un messaggio non valido fa rifiutare la richiesta in modo pulito invece di lasciare un invio parziale difficile da recuperare.

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`);

Collega i recapiti ai record e alle campagne del tuo database.

Assegna alle email fino a 20 tag per suddividere i tassi di recapito, apertura e bounce per funzionalità, flusso di onboarding o campagna. Puoi anche allegare fino a 2 KB di metadati personalizzati, come un ID ordine, un numero di fattura o un ID utente, che vengono restituiti invariati nelle letture tramite API e negli eventi webhook, così il tuo backend può associare gli aggiornamenti di stato senza mantenere una tabella di ricerca.

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" },
});

Monitora recapiti, bounce e coinvolgimento in tempo reale.

Scopri quando il server di posta di un cliente accetta un'email, quando una casella è temporaneamente piena o perché un indirizzo ha generato un bounce. Verifica una sola firma webhook e gestisci gli eventi con la stessa struttura di payload per Email, SMS, Voice e 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 });
}

Gli hard bounce e le segnalazioni di spam aggiungono automaticamente il destinatario alla tua lista di soppressione, mentre le disiscrizioni registrano una preferenza di opt-out, così gli invii futuri rispettano automaticamente le scelte dei destinatari.

  • email.acceptedBird ha accettato la tua richiesta di invio e ha messo in coda il messaggio per l'elaborazione.
  • email.processedIl messaggio è stato elaborato ed è pronto per la consegna al server di posta del destinatario.
  • email.deliveredIl server di posta del destinatario ha accettato il messaggio per il recapito.
  • email.deferredIl server ricevente ha rinviato temporaneamente l'accettazione; Bird riprova automaticamente il recapito.
  • email.bouncedIl recapito è fallito in modo definitivo; sono incluse la classificazione del bounce e la causa diagnostica.
  • email.openedIl destinatario ha aperto l'email e caricato il pixel di tracciamento.
  • email.clickedIl destinatario ha cliccato un link tracciato nel corpo dell'email.
  • email.complainedIl destinatario ha segnalato l'email come spam nella sua casella.
  • email.unsubscribedIl destinatario si è disiscritto tramite un link o un header di disiscrizione tracciato.

Testa in sicurezza bounce, rinvii e segnalazioni prima del lancio.

Usa gli indirizzi sandbox integrati di Bird per simulare recapiti riusciti, hard bounce, soft bounce, rinvii temporanei, segnalazioni di spam e destinatari soppressi senza inviare email a clienti reali né mettere a rischio la tua reputazione di mittente. Ogni invio di prova passa per la pipeline di eventi reale e attiva webhook firmati verso il tuo server locale o di staging. Quando sei pronto per la produzione, verifica il tuo dominio di invio e lascia che il warmup gestito aumenti il traffico in sicurezza.

Esplora le guide per sviluppatori.

Segui la guida all'invio di email per inviare HTML, template e allegati dal tuo backend, configura eventi di consegna e webhook per sincronizzare lo stato dei messaggi con il tuo database, oppure usa una guida alla migrazione dal provider per passare da SendGrid, Amazon SES, Mailgun o Resend.

Crea i flussi di lavoro intorno alle email in uscita.

Quando la tua applicazione è in grado di inviare la prima email, puoi programmare le consegne fino a 30 giorni in anticipo, annullare i messaggi in coda prima che partano, allegare file o immagini inline e simulare la gestione dei bounce in staging.

161%

Aumento del tasso di apertura delle email riportato nella storia di Zillow.

Leggi la storia di Zillow

Costruito con Bird

Quando appare la casa giusta, l'email deve arrivare.

Zillow ha portato gli avvisi immobiliari urgenti su Bird, con la capacità di gestire picchi di invio e l'analisi per comprendere il coinvolgimento. Il team ha riportato un aumento del 161% nel tasso di apertura nel primo mese.

Stai pianificando una migrazione o un invio a volumi più elevati?

Contatta il team commerciale

Domande sull'invio di email

Posso inviare sia email transazionali che di marketing?
Sì, entrambe passano attraverso la stessa API di invio. L'unica differenza è il campo category, che determina come si applicano le soppressioni e le disiscrizioni. Scelga transactional per reset password e ricevute, e marketing per le campagne.
Cosa succede se una richiesta va in timeout e la reinvio?
Invii un header Idempotency-Key con ogni invio logico. Se la prima richiesta è andata a buon fine ma non ha ricevuto la risposta, reinviandola con la stessa chiave otterrà il risultato originale con un header Idempotency-Replay, anziché inviare l'email due volte.
Posso programmare un invio per un momento successivo?
Imposti scheduled_at su un orario compreso tra 30 secondi e 30 giorni nel futuro. L'invio viene restituito come accettato immediatamente e resta programmato fino alla partenza, quindi può annullarlo in qualsiasi momento prima dell'invio.
Posso allegare file?
Sì, come base64 nell'array attachments. Per mostrare un'immagine inline, le assegni un content_id e la referenzi dall'HTML con cid:. Mantenga i file grezzi a 15 MB o meno affinché il messaggio rientri nel limite di 20 MB una volta codificato, e tenga presente che i content type eseguibili e di script vengono rifiutati prima dell'invio.

Parla con il nostro team email

Costruisci la tua prossima integrazione email.

Discuti di messaggi transazionali, invii in batch ed eventi di consegna. Ti aiuteremo a pianificare integrazione, volumi di invio e migrazione.

Crea il tuo account, poi crea una chiave API e invia un messaggio di test.

I tuoi dati
Prodotti (facoltativo)
Email

Informativa sulla privacy

Scala senza
perdere il controllo.

Organizza i team in spazi di lavoro, controlla l'accesso alle API e traccia le modifiche tramite log di audit.

Inizia con Email.
Costruisci su più canali con Bird.

Start building with Bird in minutes.