Custom thresholds

When should you use Image sources resolve?

email-image-source-integrity · functional · recommended

When should you use this check?

Run this on any send where images matter, and always after moving assets between hosts — an environment change is the single most common cause of a hole in the email that only opens once it is in a real inbox. Because it reads the sources rather than rendering the message, it answers the question cheaply and covers every image at once, including the ones below the fold nobody proofs. It is a natural companion to the render checks: this one explains failures those checks report.

When should you not?

Skip it on text-only mail with no imagery. It is also not a judgement about how images look — size, cropping and blur belong to the rendering and clipping checks — nor about whether the image is the right one for the campaign. If your assets are hosted by a platform you cannot influence and you have no host policy to enforce, you will still get value from the broken-and-insecure findings, but the approved-host layer will have nothing to say.

What does it inspect?

Inventory img/background/style-block image references; resolve cid/data/remote with manual redirect following (chain recorded, capped at 5 hops); fail on unresolvable/undecodable sources, hosts outside approvedAssetHosts (source or redirect destination; empty list = no restriction), and http-only sources whose https upgrade fails.

What does a failure mean?

A failure means at least one image source is not sound: it does not resolve, it is served over http rather than https, it is a dangling content-id the export never attached, or it comes from a host outside your approved list. The first three are functional defects that render as nothing in a real inbox regardless of client. An unapproved host is a policy finding rather than a broken one — the image may render perfectly and still be somewhere you do not want your brand's assets served from.

What are the Standard defaults — and why?

One parameter carries the check: `approvedAssetHosts`, whose Standard default is an empty list. Empty means no host restriction while the broken and insecure-source checks still run, so the check is useful out of the box and only becomes a policy instrument when you say so. Its severity is deliberately not `required`, which is what keeps the empty default from routing the check into a needs-configuration skip — an unconfigured run should still tell you your images are broken.

How does an agent call it?

{
  "type": "email",
  "validations": [
    "email-image-source-integrity"
  ]
}

Who governs the Standard?

Schemafirst.org publishes community-governed standards for digital QA. ArbiterQA is a sponsor and commercial licensee of those standards; citation does not mean Schemafirst operates ArbiterQA.

Schemafirst.org

Author ArbiterQA · Reviewed by ArbiterQA · 2026-08-14