Give your QA agent a real inbox.
Email verification, 2FA codes, and password resets your test agent can actually receive — so it can run full signup and login flows end to end.
Testing real user flows means receiving real email: the confirmation link, the password-reset message, the 2FA code. Mocking these is brittle and skips the parts most likely to break. A QA agent needs an inbox that behaves like a user's.
Mailgent gives the agent a real, disposable-feeling address and a vault that generates TOTP codes. It signs up, reads the verification link, enters the 2FA code, and completes the flow exactly as a user would — no mailbox plumbing, no hardcoded test fixtures.
Receive the verification email
The agent fills the signup form with its Mailgent address, waits for the confirmation message, pulls the link, and clicks through — testing the real delivery path, not a stub.
Each agent identity gets a distinct address, so parallel test runs don't collide on the same inbox.
await page.fill("#email", agentEmail);
await page.click("#signup");
const msg = await waitForMail({ subject: /verify/i });
await page.goto(extractVerifyLink(msg));
// later, at the 2FA gate
const code = await vault_totp({ key: "acme-login" });
await page.fill("#otp", code);Get past the 2FA gate
Store the TOTP secret in the vault once, and the agent generates valid six-digit codes on demand — so login flows that require an authenticator app are testable without a phone. Backup codes are there too, for the recovery paths.
Clean, isolated test identities
Because each agent has its own scoped identity and inbox, you can spin up fresh test accounts, run flows in parallel, and tear them down — with every email and code generation logged for debugging.
FAQ
Can it read the actual verification email?
Yes. It receives real mail at its address and parses the link or code from the message body.
How does it handle authenticator-app 2FA?
Store the TOTP secret in the vault; the agent generates valid codes with vault_totp on demand.
Can I run tests in parallel?
Yes. Provision multiple agent identities, each with its own address, so runs don't share an inbox.
Give your agent an inbox.
A real email address, a vault, 2FA, and an identity in one API call.