> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mailbreeze.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SMTP Overview

> Send email through MailBreeze over SMTP, with no code changes

MailBreeze accepts mail over SMTP as well as through the [API](/api-reference/emails/send) and [SDKs](/sdks/overview). If your application, plugin, or server already speaks SMTP, you can point it at MailBreeze by changing four settings.

<CardGroup cols={2}>
  <Card title="No code changes" icon="plug">
    Anything with an SMTP config form works: WordPress, Laravel, Rails, Django, Postfix, CRMs, scanners.
  </Card>

  <Card title="Same platform features" icon="shield-check">
    DKIM signing, suppression lists, open and click tracking, and delivery logs apply exactly as they do to API sends.
  </Card>
</CardGroup>

## Connection settings

| Setting    | Value                                            |
| ---------- | ------------------------------------------------ |
| Server     | `smtp.mailbreeze.com`                            |
| Port       | `587` (STARTTLS), `465` (TLS), `2525` (STARTTLS) |
| Username   | `apikey`                                         |
| Password   | Any active API key for your domain               |
| Encryption | Required                                         |

Use port `587` unless your host blocks it. Port `2525` exists for networks that block `587`, and `465` for clients that require implicit TLS.

<Note>
  The username is literally the word `apikey`. Your API key goes in the password field.
</Note>

## Which API key to use

Any active API key for a verified domain works — there is no separate SMTP credential to create. Use the same keys you manage in your [dashboard](https://console.mailbreeze.com/settings/api-keys).

<Warning>
  An API key used in a mail configuration has the same access as one used against the REST API. Treat a printer, plugin, or server config as you would any other place you store a key.
</Warning>

## What is required

Your sending domain must be verified before you can send, over SMTP or otherwise. See [Domain Verification](/dns/setup).

The `MAIL FROM` address must be on that verified domain. Sending as another domain is rejected:

```
550 From-address domain must match verified domain 'example.com', got 'other.com'
```

## Encryption is mandatory

The server refuses to accept credentials on an unencrypted connection. Clients must issue `STARTTLS` on ports 587 and 2525, or connect with implicit TLS on 465. Attempting to authenticate first returns:

```
538 Error: Must issue a STARTTLS command first
```

The server presents a certificate for `smtp.mailbreeze.com` issued by Let's Encrypt, so certificate verification should be left enabled in your client.

## Next steps

<CardGroup cols={2}>
  <Card title="Configure your client" icon="gear" href="/smtp/sending">
    Settings for WordPress, Laravel, Rails, Django, Nodemailer, and Postfix.
  </Card>

  <Card title="Limits and behaviour" icon="list-check" href="/smtp/limits">
    Message size, recipients per message, headers, and Bcc handling.
  </Card>

  <Card title="Response codes" icon="triangle-exclamation" href="/smtp/troubleshooting">
    What each SMTP reply means and how to react to it.
  </Card>

  <Card title="Use the API instead" icon="code" href="/api-reference/emails/send">
    Templates, attachments by ID, and scheduling are API-only.
  </Card>
</CardGroup>
