Inklura Mail v0.2.0 — multipart, retry, and a real mail-log table.
Highlights
- Multipart email — HTML messages now also carry a derived plain-text alternative, and the
wp_mail_content_typefilter is honored (not just an explicit Content-Type header). - Retry on transient failure — transient bext failures (timeout, 429, 5xx, unreachable) are re-attempted in the background via the bext queue (REST callback) or a wp-cron event, up to a configurable max-attempts cap with growing backoff. WordPress still delivers immediately as a fallback, so nothing waits on a retry. Permanent failures (4xx /
ok:false) are not retried. - Mail log → custom table — replaces the 50-row option ring buffer with a per-blog
dbDeltatable offering search (recipient/subject), status + transport filters, pagination, and a per-entry detail view (subject, to, via, status, error, time, attempts). The legacy option is migrated then removed; the table is capped and auto-pruned. - Send stats — sent / fallback / failed / total over the last 7 days, on the log page.
- New settings + network defaults — default Reply-To, max log rows, max send attempts.
- New
fallbackstatus distinct fromfail. Activation/new-site hooks create the table; uninstall drops it (and any retry cron).
Quality
- PHP 7.4+ only, multisite-capable, every bext call still fails open to native
wp_mail. The self-hosted updater is unchanged. php -lclean across all files; 5 WP-free unit test files, 138 assertions, all green.
See CHANGELOG.md for the full list.