Solution Icon

Solutions

Cutting-edge solutions tailored to everyday issues in the modern digital environment.

Services icon

Services

Innovative tools and services designed to address complex challenges today’s digital landscape.

IT FOR What WE DO MENU

Aerial view of an industrial facility at sunset

Services

Hexagon is reshaping industries through smarter systems, streamlined workflows, and bold digital innovation.

IT FOR HOW WE DO MENU

Aerial view of an industrial facility at sunset

Services

Hexagon is reshaping industries through smarter systems, streamlined workflows, and bold digital innovation.

Ready to clean up your CRM workflow?

Book a CRM Workflow Audit and see where leads, follow-ups, reporting, or disconnected tools can be fixed first.

Quality Assurance

Transactional Email Testing: A Responsive QA Checklist

How we test receipts, password resets and service emails before release: data, client rendering, dark mode, secure links and delivery failures.

  • Email QA
  • Application Development
  • Updated October 2026
Dark cover with the words Transactional Email Testing, QA Checklist in white and blue text

Test transactional email as part of your application, not as a design file. A receipt, password reset or appointment confirmation has to reach the right person, show the right data, render in the clients your customers use and lead to a safe next step.

We check four layers before release: data correctness, rendering and accessibility, link security, and delivery-failure handling. Here is the checklist we use.

What should each transactional email be tested against?

Start with a short contract for every template. It names the event that sends the message, the person who should receive it, the fields that must appear, the one action the reader should take, and what happens when a field is missing.

An order receipt needs an order reference, currency, line items, totals and a link to the customer's own order page. A password reset needs a recognizable sender, a clear purpose, a working recovery link and a note on what to do if the reader did not ask for it. The contracts are different, so the tests are different.

We also write down what must never appear: internal IDs, debug output, template tags that failed to fill, or another customer's data. Any of these blocks the release.

Decide duplicate behavior too. If the app retries an event, should it send again, suppress the second send, or send a clearly labeled update? Pick one and test it.

Which test data exposes real template bugs?

Use synthetic fixtures, not copies of real customer records. Good fixtures are built to break the layout and the logic:

  • A missing first name and a very long one.
  • Long product names, reference numbers and addresses.
  • Zero, one and many line items.
  • Several currencies, date formats and time zones.
  • Accented characters and any right-to-left languages you support.
  • Optional sections that are present, absent and empty.
  • Characters that must be escaped in HTML.

For each fixture, check the subject line, preview text, HTML body, plain-text version and every link. Compare totals with the source data in the application. Test the compiled message after personalization and CSS inlining, because a clean template file does not prove the sent email is correct.

Which email clients belong in your test matrix?

Pick clients from your real audience and your support commitments. A common starting set is Gmail on web and mobile, Apple Mail on iPhone and the Outlook versions your customers use. Write down platform and version. "Outlook passed" is not specific enough to act on.

Test narrow and wide screens, enlarged text, blocked images, and light and dark modes. The main button must stay visible, long strings must not force sideways scrolling, and line items must stay readable.

Google's Gmail CSS reference lists supported media queries and notes that Gmail may ignore unsupported properties. So we build a readable single-column baseline first and treat responsive rules as an improvement, not a requirement for the content to make sense. Keep key information as live text, and approve the received message in each client, not a browser preview.

How do you test dark mode and accessibility?

Treat them as two separate checks. Microsoft's dark mode guidance for email explains that clients may leave colors alone, invert them partly or fully, or override styles. Check text, buttons, borders and logos in each mode. A transparent logo can vanish on a dark background. Status such as "payment failed" must not rely on color alone.

For contrast, use the WCAG targets: 4.5:1 for normal text and 3:1 for large text, as set out in W3C's contrast guidance. Measure the rendered colors, not just the design file.

Give informative images useful alt text and decorative images empty alt text, following the W3C images tutorial. Listen to the message with a screen reader, use descriptive link text, and make sure the main action can be reached by keyboard.

For every link, confirm the environment, host name, destination and sign-in behavior, and what happens when an ID is missing or invalid. A staging URL in a production email is a real defect, even if the button looks perfect.

Password resets need extra care. The OWASP Forgot Password Cheat Sheet says reset tokens should be single use and expire after an appropriate period. We test a fresh link, an expired link, a link that was already used and a link opened on a different device.

Check that tracking redirects and security scanners that open links do not complete a sensitive action on their own. Keep live secrets out of screenshots, test reports and shared previews. For account emails, the surrounding flow matters as much as the template, which is why we pair this work with an application security review.

How do you test delivery failures safely?

An accepted API call, a message accepted by the receiving server, inbox placement and a completed action are four different results. Record them separately wherever your provider reports them.

Use controlled test inboxes for visual checks and your provider's simulator for failure paths. The Amazon SES mailbox simulator covers delivery, bounce, auto-reply, complaint and suppression-list cases. AWS states that simulator messages do not affect bounce or complaint rates, but they are billed like any other email.

Then check your own side. Does the app match each provider event to the right notification record? Does it handle the same event twice safely? Does support see a clear status? A simulator proves the integration, not how the message looks in a real inbox.

What should the release gate require?

Keep templates, fixtures, compiled samples and automated checks in version control, so a change to a shared header or button triggers checks on every template that uses it. If you already run browser test suites, the same thinking applies here. Our guide to choosing a test framework by risk covers that side.

Before release, we ask for evidence of:

  1. Correct recipient, trigger, subject, content and language.
  2. Safe handling of missing and optional data.
  3. Passing renders across the agreed client list.
  4. Usable image-blocked, dark mode and accessible versions.
  5. Correct links, plus tested expiry and reuse rules.
  6. Observed delivery events and failure handling.

Give each failure an owner and separate blockers from cosmetic issues. After deployment, send a few controlled messages through production and confirm the right template version went out.

Frequently asked questions

Is a responsive email framework enough to ensure compatibility?

No. A framework cuts repetitive markup, but personalized data, compilation, provider changes and client behavior still need testing. Approve the received message, not the component preview.

How many email clients should we test?

Base the list on your recipients, your risk and your support promises. Cover representative desktop and mobile clients, then add any client linked to a customer complaint. No fixed number proves compatibility.

Should transactional emails include a plain-text version?

Yes, and test it. It should carry the key details and working links, not just a line telling people to view the HTML. Amounts, dates and actions must match across both versions.

What is the most important release blocker?

Wrong-recipient data, wrong transaction details, or a broken or insecure account link. A visual defect also blocks release when it hides required information or stops the reader from finishing the task.

Sources

Make your notification emails release-ready

If your receipts, resets or service emails break in some inboxes, or nobody can say which template version went out, we can build the test fixtures, client checks and release gate with your team.

BUSINESS SYSTEMS

SOFTWARE

AI

INTEGRATIONS

Build, Improve, or Connect the Systems Your Business Depends On.

Whether you need custom software, CRM, ERP, AI, automation, integrations, or modernization, tell us what you’re trying to improve. We’ll review your requirements and recommend the most practical next step.

300+

Software projects delivered

37+

Enterprise apps built

150+

delivery team members

10+

countries served

★★★★★ 4.7 on Google · 20 reviewsU.S.-led since 200721 awards & certifications →
Client results
BMG: cut the time lost on follow-ups by 70% with our CRM.
Utah Dental Association: convention registration streamlined from months to one month.

Tell Us About Your Project

No sales pressure. Tell us what you’re trying to build, improve, integrate, automate, or replace. We’ll review your answers and come back with a clear recommendation within 1 business day.

Prefer to talk now? Call +1 (801) 259-4800 or book a free 30-minute review.

© 2026 Hexagon IT Solutions. All rights reserved.