---
title: "Getting Started"
description: "Point an MX record at mx.smtp.dev, create an account, and send your app's first test email. Read it over IMAP, POP3, API, or the web UI."
canonical_url: "https://smtp.dev/docs/getting-started/"
last_updated: "2026-08-16T22:38:03.639Z"
---

1. [Sign up](/signup) and log in
2. Go to [Domains](/domains) and add your domain
3. Add an MX record pointing to `mx.smtp.dev` at your DNS provider ([details](/docs/setup/domain))
4. Go to [Accounts](/accounts) and create an email address on that domain
5. Send an email to that address from your app
6. Open the account in [Mail](/mail/accounts) - your email should be there

<note>

You can also use any email client over [IMAP, POP3, SMTP](/docs/setup/account) and [API](/docs/api).

</note>

## Over the API

The same flow, scripted. Create a key on the [API Keys](/tokens) page first; the MX record from step 3 still has to exist.

```bash
curl -X POST https://api.smtp.dev/domains \
  -H "X-API-KEY: $SMTP_DEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "test.example.com"}'

curl -X POST https://api.smtp.dev/accounts \
  -H "X-API-KEY: $SMTP_DEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address": "qa@test.example.com", "password": "use-a-secret"}'
```

Everything in the UI maps to a [REST endpoint](/docs/api), so whatever you set up by hand you can also script.

<table>
<thead>
  <tr>
    <th>
      
    </th>
    
    <th>
      
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Domains
      </strong>
    </td>
    
    <td>
      Your own domains and subdomains, isolated from each other.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Accounts
      </strong>
    </td>
    
    <td>
      Email addresses with mailboxes, passwords, and storage. <a href="/docs/features/account#plus-sign-aliasing">
        Plus-sign aliasing
      </a>
      
       and <a href="/docs/features/account#catch-all-addresses">
        catch-all
      </a>
      
       included.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Mailboxes
      </strong>
    </td>
    
    <td>
      Inbox, Sent, Trash, Drafts, Junk by default. <a href="/docs/features/mailbox">
        Create more
      </a>
      
       as needed.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Messages
      </strong>
    </td>
    
    <td>
      HTML and plain text views, raw SMTP source, <a href="/docs/features/message#email-verification">
        SPF/DKIM/DMARC checks
      </a>
      
      , attachments.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Compose
      </strong>
    </td>
    
    <td>
      Send test emails between accounts from the browser.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        API Tokens
      </strong>
    </td>
    
    <td>
      Keys for the <a href="/docs/api">
        REST API
      </a>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Real-time
      </strong>
    </td>
    
    <td>
      New messages show up instantly via SSE.
    </td>
  </tr>
</tbody>
</table>
