[Email](/email)

# SMTP relay. A familiar way forward.

Keep your application’s email builder. Connect it to Bird for authenticated sending and delivery visibility, with the wider email platform ready when you need it.

[Start now ↗](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Femail)

[Talk to sales ↗](/demo?product=smtp)

BIRD / SMTP

Illustrative experience

01

Keep your application

02

Connect to Bird

03

Inspect the result

Replay

Your application / Connection settings

Example · no request is made

MAIL TRANSPORT SMTP

ACCOUNT REGION Europe · eu1

HOST eu1.smtp.bird.com

PORT 465

SECURITY TLS

CREDENTIALS Server-side secret

Keep your existing MIME email builder.

SMTP

Order FN–1042

FIELDNOTES

ORDER FN–1042

✓

### Good things, on their way.

Thanks, Alex. Your order is confirmed.

Handmade cup

Everyday cup

Clay / natural glaze

× 1

View your order ↗

A transactional email · illustrative order

Your application / Connection settings

Example · no request is made

MAIL TRANSPORT SMTP

ACCOUNT REGION Europe · eu1

HOST eu1.smtp.bird.com

PORT 465

SECURITY TLS

CREDENTIALS Server-side secret

Keep your existing MIME email builder.

SMTP session

01

TLS established

Encrypted connection to the regional host

✓

02

Authenticate

Sending-scoped credentials

✓

03

Submit your message

250 · queued as em_example_fn1042

↗

Delivery evidence

Example · no request is made

em_example_fn1042

SMTP submission Accepted

Recipient event email.delivered

Receiving server accepted the message.

Inbox placement is a separate question.

FIELDNOTES

ORDER FN–1042

✓

### Good things, on their way.

Thanks, Alex. Your order is confirmed.

Handmade cup

Everyday cup

Clay / natural glaze

× 1

View your order ↗

A transactional email · illustrative order

**Example content and data. Nothing is sent or changed in a live account. Use the stage controls to explore.**

[Meet Bird’s customers ↗](/customers)

Companies that trust Bird across their communications.

- [Airwallex](/customers/airwallex)
- Uber
- [Zillow](/customers/zillow)
- [Glovo](/customers/glovo)
- PayPal
- Adobe

[Read Bird customer stories](/customers)

WHAT IT MEANS FOR YOUR CUSTOMER

## Keep the work you love. Change what delivers it.

Your application already knows how to build its email. Bring that work to Bird with a familiar SMTP connection and a wider platform around every send.

01 / Your application

### Keep your message builder.

Continue creating HTML, text, and attachments with the application or library your team already uses.

02 / The connection

### Give it a new route out.

Configure the regional SMTP host, transport, and credentials for authenticated sending.

03 / The result

### Keep sight of the message.

Use the queued email ID to connect submission to logs, delivery events, and the customer workflow.

READY WHEN YOU ARE

## A new connection for the email you already send.

[Start now ↗](/dashboard/signup?returnTo=%2Fdashboard%2Fw%2Femail)

[Talk to sales ↗](/demo?product=smtp)

01

[Prepare the sender ↗ Verify the domain your application will send from.](/email-domain-authentication)

02

[Connect the relay ↗ Use the regional host, TLS mode, and sending credential.](/docs/guides/email/smtp)

03

[Plan the migration ↗ Carry sending policy, message IDs, and delivery handling forward.](/docs/guides/email/migrate)

## A careful change. A clear migration.

Nodemailer with Bird’s documented TLS settings. Install nodemailer, use a key with the emails scope and a verified sender. Reuse the logical message key only for retries of that message.

[Open the implementation guide →](/docs/guides/email/smtp)

Connect an application you already use.

[Supabase Auth ↗](/docs/guides/email/smtp-supabase)

[WordPress ↗](/docs/guides/email/smtp-wordpress)

[Laravel ↗](/docs/guides/email/smtp-laravel)

**JavaScript**: `npm install nodemailer`

File: `smtp-connect.mjs`

```javascript
import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: "eu1.smtp.bird.com", // Match the key region.
  port: 465,
  secure: true,
  auth: { user: "bird", pass: process.env.BIRD_API_KEY }
});

const result = await transport.sendMail({
  from: process.env.BIRD_VERIFIED_FROM,
  to: "delivered@messagebird.dev",
  subject: "Your studio visit",
  text: "Your booking FN–1042 is confirmed.",
  headers: { "X-Bird-Idempotency-Key": "booking-FN1042-confirmed-v1" }
});
console.log(result.response); // Keep the queued email ID.
```

Examples: [JavaScript](/hi-in/smtp-service.js.md)

## Keep the integration. Understand the connection.

Trace a successful submission, a region mismatch, or an unverified sender. SMTP acceptance and the later delivery event answer different questions.

Interactive examples require JavaScript. The initial settings, setup guide and implementation example remain available.

Application setup

Nodemailer

Python smtplib

Account region

Europe · eu1

United States · us1

Secure submission

465 · implicit TLS

587 · STARTTLS

2525 · STARTTLS

Connection scenario

Successful submission

Key from the wrong region

Encryption omitted

Unverified sending domain

Trace the connection

↗

Reset

[Read the result and next step ↗](#smtp-result)

YOUR APPLICATION / SMTP SESSION

### Connect in your account’s region.

Port 465 starts inside TLS. Ports 587 and 2525 require STARTTLS before authentication. Keep credentials on your server.

Copy environment settings

Settings copied.

Copy is unavailable. Select and copy the settings directly.

These connection excerpts prepare the transport. Use the complete example above to submit a message. Unconfigured SMTP keys use the transactional category; the HTTP API has its own defaults.

BIRD EMAIL / THE SAME FOUNDATION

### Authenticate

Use an API key with emails scope, in the same region as the relay.

### Queue the MIME message

Keep the returned email ID with the application event. Preserve the logical idempotency key for an uncertain retry within its supported window.

### Observe delivery

Follow recipient events separately. Receiving-server acceptance does not establish inbox placement.

Illustrative connection outcome

Settings are ready. Trace this connection to inspect an outcome; changing a setting clears the previous result.

Example: 250 queued as em_example_fn1042. The relay accepted the message. A later email.delivered event records receiving-server acceptance; inbox placement remains unknown.

Example: 535 authentication refused. Use the host named for the API key’s region, then retry authentication. No message was queued in this example.

Encryption is required. On 587 or 2525, complete STARTTLS before AUTH. On 465, establish TLS before the SMTP dialogue. This example stops before authentication and queues nothing.

Example: 550 sender domain is not verified. Verify the From and envelope-sender domain in this workspace before resubmitting. Retrying unchanged does not resolve a permanent refusal.

[Read the SMTP setup ↗](/docs/guides/email/smtp)

**Interactive illustration. Fictional customer and results. No connection is opened and no message is sent.**

## Same email. Same delivery controls.

SMTP and HTTP submissions share domain verification, IP pools, signing, suppressions, tracking, events, and analytics. A successful submission still precedes recipient delivery.

[Read the product guide ↗](/docs/guides/email/smtp)

FIND YOUR WAY IN

## A second way into the same email platform.

An existing SMTP application

### Change the connection settings.

Keep the email-building code and move host, transport, and credentials together. Test a controlled workload before migration.

[Configure SMTP ↗](/docs/guides/email/smtp)

A new application integration

### Compare the HTTP Email API.

Use the API when a direct application request is the better fit. Both paths sit inside the wider Bird email platform.

[Explore API sending ↗](/email-api#email-developers)

### The details behind your setup

#### Connect in the right region

Use the SMTP host that matches the API key region. Port 465 uses implicit TLS; 587 and 2525 use STARTTLS.

#### Keep the email foundation

SMTP uses the same domain verification, signing, suppressions, IP pools, events, and analytics as API email.

#### Recover safely

Use a stable X-Bird-Idempotency-Key for a logical message. Keep the queued email ID and handle transient versus permanent replies.

#### Stage the migration

Inventory the current client, MIME content, recipient count, attachments, and send categories. Configure the matching regional host and TLS mode, verify the From domain, then test a single message and its recipient event before moving traffic.

#### Keep a rollback route

Retain the prior relay configuration while the new path proves acceptance, events, and suppression behavior. Keep a stable idempotency key for uncertain retries and switch back only after checking whether Bird already queued the message.

THE COMPLETE BIRD PLATFORM

## One relay. A wider email platform.

Keep SMTP where it works for your application. Add API sending, campaigns, and delivery insights as your email program grows.

fieldnotes.

ORDER FN–1042

Good things, on their way.

Everyday cup · Natural glaze Quantity 1 · Order confirmed View your order ↗

01

### SMTP This step

An existing application submits Alex’s receipt.

[MESSAGE / EXAMPLE Follow the evidence. Accepted 10:42:00 Deferred 10:42:02 Delivered 10:47:05 Receiving-server acceptance](/email-analytics)

02

### [Analytics ↗](/email-analytics)

Follow the queued message into its delivery outcome.

[Today · 9:41 Could you help with order FN–1042? Of course, Alex. I have your everyday cup order here.](/whatsapp)

03

### [WhatsApp ↗](/whatsapp)

Your application can continue the customer relationship in a conversation.

BUILD YOUR BIRD SETUP

A useful next connection.

[Sending domains ↗ Keep the sender recognisable Prepare the verified identity behind your messages.](/email-domain-authentication)

[Suppressions ↗ Carry restrictions forward Keep recipient history intact during migration.](/email-suppressions)

[Dedicated IPs ↗ Choose the sending setup Evaluate dedicated IPs when the workload warrants them.](/dedicated-ips-for-email)

[Email analytics ↗ Follow your sends Inspect delivery and message-level evidence.](/email-analytics)

Keep SMTP applications and new Email API integrations on the same Bird email foundation. Add campaigns, incoming replies, and messaging as the customer journey grows.

[Plan your complete Bird setup ↗](/demo?product=smtp)

## Go further with SMTP relay.

[FIELD GUIDE Migrate one SMTP application Test message parity, reconcile uncertain submissions and keep a rollback route. Read the field guide →](/guides/migrate-an-smtp-application)

[01 Configure SMTP Hosts, credentials, transport, limits, and responses. ↗](/docs/guides/email/smtp)

[02 Verify the sender Use the domain associated with your workspace. ↗](/docs/guides/email/sending-domains)

[03 Find a submitted message Use the email ID returned by the relay. ↗](/docs/guides/email/email-log)

[04 Plan your migration Move configuration and preserve sending policy. ↗](/docs/guides/email/migrate)

### Choose your email integration

[Email API overview ↗](/email-api)

[SMTP relay ↗](/smtp-service)

[Inbound email ↗](/inbound-email-api)

[Agent mailboxes ↗](/agent-mailboxes)

## The same email workload. A familiar way to send.

Scope your SMTP volume in an Email plan. Keep sender authentication, recipient restrictions, and reporting connected to the same program.

[Compare Email plans ↗](/products/email/pricing)

YOUR SMTP RELAY SETUP

Your Email plan

Match monthly sending volume to the workflow you need.

Sending volume

Choose the published email tier for your monthly sends.

Included foundation

Authentication, dashboards, suppressions, and webhooks are part of the Email plans.

Dedicated infrastructure

Dedicated IPs are an eligible-plan add-on.

## SMTP relay, answered.

### Should I choose SMTP or HTTP?

SMTP is a natural fit for an application that already builds and submits MIME messages. The Email API provides an HTTP integration for your application. Both use Bird’s email infrastructure.

### Which ports can I use?

Use implicit TLS on 465 or STARTTLS on 587 or 2525. Port 25 is not offered for submission. Match the host to your API key region and keep the key on your server.

### What happens if the connection drops after submission?

Keep a stable X-Bird-Idempotency-Key for that logical message when retrying within the documented retention window. Preserve your own send record for recovery beyond that window.

### Why might an accepted SMTP recipient still not receive mail?

Recipient policy, including suppressions, can be applied asynchronously. Follow the email ID and recipient events instead of treating queue acceptance as delivery.

### How do I get started or speak to sales?

Start with a Bird account and follow the setup path on this page. Our sales team can help with migration, volume, or a wider product mix. Start now or talk to sales.

## Keep what works. Connect what comes next.

[Explore the whole Bird platform ↗](/)