Sign-Up Email QA Checklist: Manual Tests with Real Gmail and iCloud Inboxes
A sign-up email can pass every unit test and still fail a real user: the code reaches @icloud.com minutes after @gmail.com, a resend leaves the old code working, or the plain-text part shows an unfilled template field. These bugs only appear when the message goes through real delivery to a consumer mailbox. This checklist is the manual pass a QA engineer runs on their own product's verification email, with rented @gmail.com and @icloud.com inboxes whose messages appear on the OTPGmail order page.
It is written for testing by hand. For the same cases in CI, the guide to the email OTP API for testing covers the calls.
Which option to pick when your product is not on the list
Your own product is not in the service list, so you rent under Any service (API code ot). It costs more than a named service, and its two inbox types behave differently:
- @gmail.com receives one code per inbox. Use it for single-email cases: delivery, content, wrong code, expiry.
- @icloud.com shows every new email sent to the inbox during its window, and only gives you inboxes you have never rented before. Use it when a case needs a second email: a resend, a new code after expiry, the welcome email.
Extra codes cost nothing within the order period when the service sends more than one; the limit and time window are shown before you rent. The rental steps and live price are on the Any service page.
What the order shows while you test
- The status reads Waiting for code until your email arrives, then Completed. Nothing within 25 minutes? The order cancels itself with a 100% refund and shows Cancelled · refunded; for a delivery test, that row is your result.
- A detected code appears as a chip with its arrival time; click it to copy. When the order holds the whole email, View email sits next to it (View full email on a phone).
- The email viewer shows Received with the time to the second, a Likely code tag and, for HTML mail, the tabs Preview, Text and Source. Scripts and links in the email are disabled there.
- A verification link gets its own line showing the host, which opens in a new tab.
You never sign in to a rented inbox, so it cannot tell you whether the message landed in the main inbox, a tab or the junk folder. Check placement with a mailbox your team owns.
The checklist: nine cases for one verification email
| Case | How to run it | Passes when |
|---|---|---|
| Delivery to Gmail | Sign up with a rented @gmail.com address | It arrives; note seconds from submit to Received |
| Delivery to iCloud | Repeat with @icloud.com | It arrives, with similar timing |
| Content | Check Preview, Text and Source | Right sender and subject, code readable in Text, no unfilled fields, links on your domain |
| Code or link | Finish the flow with what your product sends | The code works, or the link opens the right page in a fresh browser |
| Resend | Request a second email (iCloud option) | Only the newest code is accepted |
| Expiry | Wait past the stated expiry, then enter the code | Rejected clearly; a fresh code works |
| Wrong code | Enter wrong codes up to your attempt limit | Clear errors; the lockout matches the spec |
| Code reuse | Reuse a code after a successful confirmation | Rejected; no second session |
| Address taken | Sign up again with an address already used | No duplicate account |
The code stays on the order after it arrives, so for the expiry case you can type it later.
What to record for each run
An email bug report is only as good as its timestamps. Log the Order ID and address (History has a "Search email, code or order ID" box), the inbox type, the build under test, the time you submitted the form, the Received time, the result, and a Preview screenshot when content is the issue.
At the end of a session, open History, stay on Rentals, filter by service, Email domain and Rental date, then use Export Excel or Export TXT: the export covers every order matching the filters, not only the page on screen. Copy all gives one line per order as email---code1,code2 (email---null when no code came).
Passing a code to a teammate
Manual email tests often need two people: one runs the form, another confirms on a phone or a second machine. Nobody needs your login. Switch on a share code on your Account page: they enter it together with the email at otpgmail.net/otp to see the codes without an account. Viewing codes there never charges you; renting a cancelled address again through the link works only if you allow it on the Account page, and then it is charged to your balance.
The Share button on an order copies a code link for that address. The code page does not show orders that are cancelled or older than 30 days. Anyone with the share code and an email can read that email's codes, so if the code leaks, press New random code: the old code and link stop working immediately.
Reading a failed or odd delivery
- Nothing arrived: the refund is automatic. Check your sending logs (accepted, deferred, bounced), then retry once with the other inbox type before calling it a Gmail or iCloud problem.
- It arrived late: record both timestamps and rerun later; one slow message is not yet a bug.
- No code was detected: read the Text tab. If a person has to hunt for the code, your users will too.
A rented inbox only receives codes within its order window, which the rent page shows before you pay. Move any test account your team must keep to a shared team address.
Frequently asked questions
Can I test password-reset and email-change messages the same way?
Yes. Sign up with the @icloud.com option, then trigger the reset: the second email shows on the same order while its window is open. The Gmail option stops after one code.
Can our product get its own entry in the service list?
Press Add service on the rent page and send the service name, a sample email and the number of inboxes you need per day. An admin reviews each request and adds the service when the infrastructure supports it. A named service is usually cheaper than Any service.
Can I reply from the rented inbox or test inbound mail?
No. Rented inboxes are receive-only. For reply-to and inbound tests, use a mailbox your team owns.
Start a session on the rent page, or check the Any service price on the price list first.
