> For the complete documentation index, see [llms.txt](https://docs.does.qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.does.qa/guides/email-testing-in-doesqa.md).

# Email testing in DoesQA

Built-in test inboxes, per-Test-Case mail isolation, and Mail Test Steps for registration, password reset, and passwordless login journeys.

Many products send email during signup, login, checkout, or account changes. DoesQA includes test inboxes and [Mail Test Steps](/test-steps/mail.md) so those journeys stay inside one Flow. You do not wire a separate mail service into your tests.

## Two inbox types

| Inbox         | Value                                                                                               | Use it when                                                                  |
| ------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| **Test Case** | [`$testEmail`](/values/built-in-values.md) or [`$testEmailShort`](/values/built-in-values.md)       | The message belongs to one Test Case, such as registration or password reset |
| **Account**   | [`$accountEmail`](/values/built-in-values.md) or [`$accountEmailShort`](/values/built-in-values.md) | Several Test Cases should share one mailbox                                  |

Prefer **Test Case** for signup and reset flows. Each Test Case gets its own address for that Run, so parallel Runs do not read each other's mail.

## What you can do in a Flow

A typical email journey looks like this:

```mermaid
flowchart TD
  enter["Set value with $testEmail"] --> trigger["Submit the form"]
  trigger --> wait["Wait for email"]
  wait --> openMail["Open email"]
  openMail --> act["Touch, Check, or Validator steps"]
  act --> close["Close inbox"]
```

* [**Wait for email**](/test-steps/mail/wait-for-email.md) pauses until the message arrives.
* [**Open email**](/test-steps/mail/open-email.md) opens the message so the body is the active page.
* Use normal [Action](/test-steps/action.md), [Check](/test-steps/check.md), and [Validator](/test-steps/validator.md) Test Steps on the open message. Click links, assert copy, or run checks such as [accessibility](/better-coverage/add-accessibility-checks.md) on the email content.
* [**Close inbox**](/test-steps/mail/close-inbox.md) returns to the application window.

Open **Mail** in the left navigation to inspect the Account inbox or a Test Case inbox while you build a Flow, or after a Run to review what arrived.

## Common journeys

| Journey                          | Guide                                                                                           |
| -------------------------------- | ----------------------------------------------------------------------------------------------- |
| Register and verify email        | [Test registration and email verification](/guides/test-registration-and-email-verification.md) |
| Forgotten password               | [Test a forgotten-password flow](/guides/test-a-forgotten-password-flow.md)                     |
| Passwordless or magic-link login | [Test passwordless login](/guides/test-passwordless-login.md)                                   |
| Hands-on Mail steps              | [Interacting with emails](/guides/interacting-with-emails.md)                                   |

## Compared with coded frameworks

Teams using Playwright, Cypress, or Selenium often add a third-party mail API and custom code to receive messages, parse links, and keep parallel tests isolated. DoesQA ships inboxes, wait and open steps, and hosted runners as one product. See [DoesQA compared](/choosing-a-test-automation-approach/doesqa-compared.md#journey-capabilities).

## Related

* [Interacting with emails](/guides/interacting-with-emails.md)
* [Mail Test Steps](/test-steps/mail.md)
* [Built-in Values](/values/built-in-values.md)
* [Test registration and email verification](/guides/test-registration-and-email-verification.md)
