Preflight checklist
Before you hit Send, MailInApp renders the email exactly as a recipient would receive it and runs it through a checklist — no third-party spam-score API, just the checks that actually predict whether an email lands and works.
What it checks
- Unresolved merge tags — a literal
{{like_this}}surviving into the rendered HTML means the tag itself was malformed (a missing field just resolves to an empty string, so this never fires on a blank column). - Size vs. the clipping budget — Gmail clips any message over roughly 102KB, hiding everything past the cutoff (including your unsubscribe link). The checklist flags an email approaching or over that limit.
- Missing
alttext on images, for recipients whose client blocks remote images by default. - Links with no
href, and plainhttp://links that should behttps://. - A missing plain-text part — most inbox filters weigh the HTML/plain-text ratio.
- A missing unsubscribe link on a marketing send (transactional sends, and any send with
type: "transactional"through the Send API, are exempt). - All-caps subject lines and excessive
!— both common spam-filter triggers. - Image-heavy, low-text emails, which filters treat as a phishing/spam signal.
Where it shows up
The Send panel re-checks automatically (debounced, so it doesn't run on every keystroke) whenever you change the subject or an A/B variant, and shows a checklist right above the Send button — a green check when everything's clean, an amber ⚠ for warnings, a red ✗ for errors. It's not hard-blocking: you can send with warnings. Errors (an unresolved tag, a missing unsubscribe link on a marketing send) trigger one extra confirmation dialog before the ordinary send confirmation, so a real mistake gets a second look without stopping you outright.
The same check runs read-only, with no quota or suppression side effects — it's safe to run as often as you like while you're still editing.
One-click unsubscribe
Every marketing send from a verified sending domain carries List-Unsubscribe and List-Unsubscribe-Post headers, so Gmail, Yahoo and other major inboxes show their own native "Unsubscribe" button next to the sender name — the one-click mechanism these providers require of bulk senders. It resolves to the same account-wide suppression as the {{unsubscribe_url}} merge tag in your footer; either path removes the recipient from every project you send from, not just the one they unsubscribed from.
Preference center
Instead of an all-or-nothing unsubscribe, you can define mail topics under Settings (for example "Product updates" and "Promotions") and assign a project to one. A recipient's unsubscribe link then opens a preference page where they can opt out of just that topic, or everything — a recipient who mutes promotions but keeps transactional receipts stays reachable for the mail they actually want.