Write down expected results before opening the inbox
In 2026, email templates are often assembled from several services: the order service supplies the amount, the booking service provides the time, the localization layer selects the language, and the email provider fills in variables. If testers only glance at a message and think “that looks like a confirmation,” data errors can easily slip through. Start with expected results that are independent of the email template, so you don’t end up using incorrect output to confirm itself.
Use synthetic orders—never enter real names, addresses, payment credentials or customer data. Give each test a non-sensitive identifier, such as QA-260101. Record the item count, unit price, discount, tax, total due, currency, appointment location and user language. Calculate expected amounts from business rules or test fixtures, not from the figures in the email.
Example fixture: two items at 49.90 CNY each, a total discount of 9.80 CNY, and, for this example, tax included with no shipping fee. Expected total due: 90.00 CNY. Create separate samples for prices excluding tax and orders with shipping; don’t treat this example as a universal pricing rule.
Use an online test email inbox to receive this notification, and add the test identifier to an editable order note or a subject line in the test environment. Change one variable at a time: verify the default language, then switch languages; test a regular date, then daylight saving time. If you change the address, currency and template version all at once, it’s much harder to pinpoint a problem.
Verify amounts: check the symbol, decimal places and total
A “$” symbol alone doesn’t confirm the currency is right, since several currencies use it. For cross-region orders, display currency information clearly in line with your product requirements. Emails generated from a Chinese-language page may still use the account language or order region to determine formatting. Check the selection rules instead of assuming the browser language is the only factor.
When checking amounts, verify the underlying value, the smallest currency unit and the displayed format separately. Some backends store amounts in cents; some APIs return decimal strings. Passing an integer straight to a template can cause a hundredfold error, while dividing again in the template can make the amount too small. Common decimal-place conventions also differ between currencies such as JPY and CNY, so don’t force two decimal places for every currency.
- Check the quantity, unit price, discount and total line by line. Confirm whether the discount applies to the whole order or to individual items.
- Test zero-value, discounted and refund notifications to check minus signs and whether amounts are labelled “due” or “refunded.”
- Check the rounding stage required by the product: rounding each line item can produce a different result from rounding the total, sometimes by one minor currency unit.
- Check decimal marks, thousands separators and non-breaking spaces. Make sure amounts are still easy to read when copied.
Don’t pass a check just because the numbers “look close enough.” Copy each email field into your test record and compare it with the expected fixture. If the HTML is correct but the plain-text version omits the currency, report that separately: users who rely on plain text are seeing a different notification.
Appointment times: “3 p.m.” may still be missing key details
Appointment and travel notifications typically involve at least three time zones: the event location, the account preference and the server. In some regions that observe daylight saving time, “November 1, 2026, at 1:30 a.m.” occurs twice, so local time alone doesn’t uniquely identify a moment. Keep the original timestamp, time zone identifier and displayed result together in your test. Don’t render the server’s UTC time directly as local time.
Test an event close to midnight to check whether conversion changes the date, then test a daylight saving transition in a region your business serves. For New York, USA, the repeated hour around the clock change on November 1, 2026, is especially useful for checking offset handling. Follow the time zone database used by your runtime; don’t hard-code UTC−5 in a template year-round.
The email can show the event’s local time and name the city or time zone. Whether users also see their account time depends on your product requirements. If the email includes a calendar invitation, check its data separately: a correct-looking message doesn’t guarantee that DTSTART, TZID or the UTC value in the calendar event is correct.
Times appear in more than the body. Check the subject line, preview text, cancellation deadline and small print beneath buttons against the same event. If messages in different languages use both “tomorrow” and a calendar date, check whether queue delays could make the relative wording inaccurate. A notification delayed past midnight may still say “tomorrow” when that’s no longer true.
Check links, images and plain-text fallbacks separately
In an authorized test environment, check both the button’s visible text and its destination. First confirm the domain and environment, then check the path, order identifier and language parameter. Test links may contain session tokens, so record only a redacted version in tickets. Don’t casually click production unsubscribe, payment or confirmation buttons as if they were ordinary preview links.
Core information should remain understandable when images fail to load. Try viewing the message with remote images disabled and check that the heading, amount and instructions are still available. Alt text should explain an image’s purpose, not string together promotional phrases. A temporary inbox may sanitize HTML, block unsafe content or fail to preserve CID-embedded images, so verify any missing images against the original MIME and another email client.
Plain text isn’t necessarily usable just because HTML tags have been removed. If the system under test provides multipart/alternative, inspect the separate text part. Check that links are complete, items appear on separate lines, amounts include a currency and button text is followed by an accessible URL. This inbox page prioritizes displaying HTML, so its rendering isn’t proof that the plain-text part passed. If needed, export and inspect the original MIME from test-sending logs or an email sandbox.
A narrow mobile viewport can reveal wrapping issues with long order numbers, names and URLs, but a webmail reading pane isn’t a full simulation of Gmail, Outlook or Apple Mail. To check layout in those clients, run separate tests with authorized, dedicated test accounts. To understand how the two tools differ, start with Temporary email vs. email sandbox.
Before release, define exactly what “content is correct” means
For each sample, record the template version, language, currency, time zone, test identifier and expected results on one line, then note the actual outcome and evidence location. Passing once only confirms what happened with that sample; it doesn’t prove coverage across every region and email client. In release notes, list anything not tested, such as “calendar attachment not checked” or “plain-text part pending review of original MIME.”
Assign issues to the right area: missing variables belong to the template layer; calculation errors go back to the business service; incorrect date offsets call for checks of time zone data and formatting; and layout problems limited to one client need a compatibility investigation. Treat unescaped user input in a template as a security issue and handle it in a controlled environment—never send a sample containing malicious content to real users.
Finally, check that notifications are sent at the right time: after a cancellation, don’t send a reminder that an event is “starting soon”; after a refund, don’t still show “payment due.” You need to review event and queue records, not just one email. If the issue is that old and new notifications arrived out of order, use the three-timestamp method in the verification-code timing guide next. For bounce and delivery terminology, see the email glossary.
Send a synthetic notification through real delivery
Work out the expected amount and time, then send the email to a temporary test address. First confirm it arrived, then check each detail against your expectations. Don’t treat a sample email as your test result.