One bounded check per link, evidence either way
"Link checking" can mean almost anything. Here it means something exact: each unique link in your delivered test email that clears protected-action and safety screening gets one safe, tightly bounded HTTP check, and whatever happens — an answer, a restriction, a timeout — is recorded as evidence you can act on.
What is inspected
Every unique public link extracted from the delivered email, deduplicated before checking — a link that appears five times is checked once, however many times it appears. Links recognized as action-bearing (unsubscribe, sign-in, reset, purchase and similar) are listed Protected and never requested; destinations refused by network safety policy are listed Blocked. Both wait for your manual review — how protected actions work.
How the checker handles it
-
Safety screen before anything is sent
The hostname is DNS-resolved and every resolved address must be public. Only standard ports qualify — 80 for http, 443 for https — and URLs with embedded credentials are refused outright.
-
HEAD request first
One request identified as
SendProofs/0.1, sent to the pre-resolved address with TLS certificate verification on. No cookies, no stored credentials, no proxies. -
Bounded GET fallback
If the destination rejects HEAD with 405 or 501, a single bounded GET follows. Response bodies are read up to 64 KB, then truncated with a recorded warning.
-
Redirects followed up to 3 hops
Every hop is recorded and re-screened before it is followed — redirect evidence covers the chain in detail.
-
Terminal classification, no retries
Each check runs inside a strict budget — 2 s to connect, 5 s to read, 10 s total per resource — and ends in exactly one recorded state.
The terminal states
- Healthy
- The final destination answered 2xx with no warnings.
- Warning
- 2xx, but something needs a human decision — a tracking issue on the final URL, an HTTPS downgrade mid-chain, a truncated oversized body.
- Broken
- Any other error status, a timeout, a connection or TLS failure, or a redirect fault — recorded with the HTTP status or a named error code.
- Inconclusive
- The destination answered 401, 403 or 429. That is a remote restriction: the site limited automated access, so review the link manually.
A remote restriction is recorded as exactly that. SendProofs never calls it a pass and never calls it a failure — the state exists so a human looks before anyone approves the send.
What every check records
- Timestamp
- When the check ran.
- Duration
- How long the whole check took.
- Redirect chain
- Every hop from the URL in the email to the final destination.
- Final URL
- Where the chain ended, shown redacted in reports.
- Status or error code
- The HTTP status when a response was received; when none arrived — a timeout, a connection or TLS failure — an explicit error code carries the evidence instead. Nothing is left as an unexplained blank.
| Resource | State | Evidence |
|---|---|---|
| campaign.example/launch?utm_source=email&utm_campaign=aug-launch | Healthy | 200 after 2 redirects · 312 ms · 14:02 UTC |
| campaign.example/pricing/summer-2026 | Broken | 404 at final destination — fix in your sending platform, then recheck |
| partner.example/offer | Inconclusive | 403 — destination limited automated access, review manually. |
Sample data. Three of the 18 links in the sample campaign — the full run covers 24 unique resources and ends Failed until the broken destination is fixed and rechecked.
Safety and limits
One attempt per destination, zero retries, standard ports only, private and internal network addresses blocked before any request — the full request path is documented in the security model. A failed TLS handshake is recorded Broken with its error code, not retried insecurely. And the result means what it says, no more: a Healthy link is evidence that its public destination answered at check time. It is not proof of deliverability, of rendering, or of overall campaign correctness.
Not included
- No JavaScript execution and no browser — checks are plain HTTP requests, so script-driven behavior on the destination page is not exercised.
- No bot-protection bypass — a destination that refuses automated access is reported Inconclusive and handed to you. SendProofs does not disguise its user agent or work around the restriction.
- No mailbox-existence checks — SendProofs checks the destinations of links in your email, not whether any recipient address exists.
Related capabilities
Redirects followed up to three hops with every step recorded — source, target and status — plus warnings for HTTPS downgrades, loops and dead ends.
Protected actionsUnsubscribe, sign-in, reset and purchase links are identified before any request and never opened. SendProofs lists them for your manual review instead.
Campaign trackingUTM review on the final URL after every redirect: missing required keys, duplicate keys, blank values and non-canonical casing, recorded per link.
Put your campaign's links on the record
Upload the delivered test — one bounded check per unique link, evidence for each.