proxymail-qa21.6 KB
View saved version →
---
name: proxymail-qa
description: Test sign-up, email verification, login-code (OTP), magic-link, password-reset and invite flows with disposable Proxy Mail QA inboxes. Use when a task needs a fresh email address for an app under test and the code or link from the email it receives.
---
# Testing email flows with Proxy Mail QA
Proxy Mail QA gives you disposable email addresses and hands back the verification code or link from each email that arrives, without the rest of the email. It supplies the inbox and the details for a sign-up form; it doesn't create accounts in the app or fill in its forms. You sign up in the app with your own browser or app tools.
## Setup
This plugin adds the Proxy Mail QA MCP server (tools named `create_address`, `wait_for_code`, `wait_for_link`). It signs in through the browser: if the tools aren't available yet, ask the person you're working for to connect Proxy Mail QA, sign in and choose a project. There's no key to set up.
## Test a sign-up
1. Check the project with `get_project`. It gives the project's default mail domain and the others available, the prefix addresses start with, and how long they last. Don't assume a domain: the ones in examples here aren't necessarily this project's.
2. Create an address with `create_address`, with a password if the sign-up form asks for one: `{"label": "Sign-up test", "password": true}`. It also returns a fictional first name, last name and username. The password comes back once, in this result, and is saved on the address so the person can sign in as the test account later. If the form asks for a date of birth, add `"age": "adult"` (or `over21`, `under18`, `under15`, `under13`, `any`, `turns18tomorrow`, `turned18today`): the persona then has `date_of_birth`, YYYY-MM-DD. Write it in the order the form asks for. If it asks where they live, or the test is about a region, add `"country": "GB"` (any ISO 3166-1 alpha-2 code). Add where the account is used: `"site"` (the app's host or the page URL, such as `staging.example.com`) and `"environment"` (such as `staging`, `qa` or `local`). The person sees both on the account in the app, and `list_addresses` finds accounts by them.
3. Fill in the app's form with the address, persona and password, and submit it. For a form with more than an email field (a username with rules, a date of birth, a country drop-down, a company size), use `form_values` instead of `create_address`: send what the page says about each field (`id`, `type`, `name`, `label`, `placeholder`, `autocomplete`, `test_id`, `pattern`, `min_length`, `max_length`, `required`, and a drop-down's `options`), with `site` and `page` (the path), and it returns the value for each field from a new address made for the form, its password included. You still fill in the form and submit it. Note the time just before you submit.
- A field one of the project's custom fields decides comes back with `kind: "custom"`. A field nobody taught gets a guess (`kind: "guess"`, with `from` saying where it came from) when the project guesses. Check each guess suits your test before you submit, and tell the person which fields were guessed. Pass `"guess": "off"` for only known values.
- Send each tick box as a field of its own, with its question's words in `group`: a custom field's answer comes back on each box as its own `checked`, and with no custom field a box comes back with no value and a note. Send a list that allows several choices, a drop-down or one the page draws itself, with `multiple: true`: a custom field's answer comes back in `values`, with `value` null, so select each value given.
- For a sign-up over several screens, call `form_values` once per screen with that screen's fields, the same `address`, and that screen's `site` and `page` (or, in a native app, its name as `screen`). A password, date of birth or country a later screen asks for is made then if the account has none, and a new password comes back once in `password`.
- `form_values` is for sPreview of the first 4,000 characters. Read full instructions →