Build a Postman collection for signup email verification
Pair a signup request with InboxRhino’s wait-for-message API to check that a verification email arrives and contains the expected code.
Eliminate flakiness in Cypress multi-factor authentication tests by fetching real OTP codes via a long-polling inbox API.
End-to-end testing for multi-factor authentication (MFA) and one-time passwords (OTP) often fails for the wrong reasons. Traditional test suites rely on static shared mailboxes, database hooks, or SMTP mocks. Static mailboxes choke when tests run concurrently. Database hooks skip the mail delivery layer entirely, hiding infrastructure outages and broken email formatting.
To verify a real user signup or login flow, Cypress needs to interact with real MX servers. It must generate a temporary inbox, submit the email address to your app, wait for the incoming message, extract the passkey, and complete the UI form.
InboxRhino provides receive-only MX inboxes running on test.inboxrhino.in routed via Cloudflare. You do not need local SMTP sandboxes or external SDKs. Instead, make standard HTTP calls directly inside your Cypress tests.
To generate a single inbox before your login test runs, execute a POST request to the API at https://api.inboxrhino.in/v1/inboxes using your API key in the authorization header. The API returns a payload containing a unique inbox ID and its assigned address.
Creating an inbox dynamically for each test execution guarantees isolation. Parallel test runs will not pick up verification codes meant for other test threads.
Once you receive the address string from the API response, instruct Cypress to interact with your frontend. Pass the generated email address into your application's signup or password-reset input field and submit the form.
Your backend application handles account creation and queues the verification email through normal outbound SMTP routes. The message travels across public DNS to reach the inbox infrastructure.
Email delivery is inherently asynchronous. Network latency and message queuing mean an email might arrive in two seconds or twenty. Adding static sleep delays in Cypress leads to slow, brittle test suites.
InboxRhino handles this delay with a wait parameter on its message listing endpoint. When sending a GET request to https://api.inboxrhino.in/v1/inboxes/{id}/messages, append wait_seconds=180 to the query parameters.
This parameter instructs the API server to hold the connection open for up to 180 seconds. The server returns immediately once a matching email arrives. You can filter the query using subject lines like subject=Verify and include full body payloads with include=content.
Issue a cy.request() command inside Cypress to poll this endpoint. When the server responds, the returned JSON body contains the parsed message text and raw HTML.
With the message body returned in the API response, use standard JavaScript string tools or regular expressions to pull out the security code.
For example, if your service sends a six-digit code, match against a numeric pattern inside the message body string. Pass the extracted code back into standard Cypress commands:
If the email fails to arrive within the 180-second window, the API request fails, pinpointing delivery delays in your test reports.
When automated tests fail, raw API responses do not always show layout or rendering bugs. InboxRhino includes a browser console with a sandboxed mailbox viewer for visual debugging.
The console renderer isolates incoming emails to prevent security risks and bad script execution during QA reviews:
QA team members can log in, select the mailbox, and review the actual email HTML as rendered in a real inbox.
When structuring your test suite around real MX endpoints, keep account quotas and architectural constraints in mind:
Pair a signup request with InboxRhino’s wait-for-message API to check that a verification email arrives and contains the expected code.
The right email-testing tool depends on whether a team needs broad platform coverage or a receive-only inbox for specific end-to-end flows.
Automated email testing still comes down to three practical choices: where mail is received, how its HTML is inspected and how test volume is managed.