Skip to content

UR-4583 - Add Email Health Checkup to Settings > Emails - #1372

Open
MILAN88888 wants to merge 36 commits into
developfrom
UR-4583-feature/email-delivery-health-checkup
Open

UR-4583 - Add Email Health Checkup to Settings > Emails#1372
MILAN88888 wants to merge 36 commits into
developfrom
UR-4583-feature/email-delivery-health-checkup

Conversation

@MILAN88888

Copy link
Copy Markdown
Contributor

All Submissions:

Changes proposed in this Pull Request:

Adds a new Email Health Checkup tool under Settings > Emails > Health Checkup (also reachable via a shortcut button next to "Send Email" on the General section, and next to "Send Test Email" on the Site Assistant screen).

Registration emails silently failing to deliver (blocked "From" address, no SMTP, admin notifications left off, etc.) is a recurring support burden — wp_mail() returning true only means PHP handed the message to the mail transport, not that it reached an inbox. This wizard catches the most common causes before a support ticket is needed:

  1. Auto-scan — runs 8 checks against the site's live settings and DNS records: sending enabled, "From" address not a personal-provider domain, admin email set, user-registration email enabled, admin notification email enabled, SMTP actually configured (via a real phpmailer_init probe, not a plugin allow-list), "From" domain has valid MX records, and no pending admin-email change. Every check reflects real, live data — nothing is hardcoded.
  2. Real delivery test — sends an actual test email, then asks the admin to self-report (from their own inbox) whether it arrived, since that's the one thing the server can never verify on its own.
  3. Dynamic, situation-aware guidance based on the actual scan results:
    • No SMTP at all → recommends and can install/activate our own SmartSMTP plugin directly (two deliberate steps: activate-and-toast, then a separate "configure" click that opens SmartSMTP's Primary Connection screen in a new tab).
    • A known SMTP plugin is installed but not active → says so specifically, rather than wrongly claiming "no SMTP plugin found".
    • A different SMTP plugin (WP Mail SMTP, FluentSMTP, Post SMTP, etc.) is already active and configured → points at that plugin's own connection status/logs, with an "Or" divider offering the SmartSMTP alternative underneath.
    • Delivered but landed in spam → explains the immediate "mark as Not spam" fix vs. the longer-term sender-authentication (SPF/DKIM/DMARC) fix, honestly framed as something living in the domain's own DNS provider rather than something we can set on the customer's behalf.
  4. Diagnostic report — generates a copyable/downloadable plain-text report (scan results + delivery outcome + site info) to hand to support.
  5. License-aware ordering — when no active license unlocks the premium Templates/Custom Email sections, Health Checkup (which needs no license) is placed above them in the left sub-nav instead of being buried below locked items.

New React/Chakra bundle at src/health-checkup/, following this plugin's existing convention of a dedicated webpack entry per feature (matches src/welcome/'s setup-wizard styling: brand color, typography, card treatment).

How to test the changes in this Pull Request:

  1. Go to Settings > Emails > Health Checkup, or click the new "Health Checkup" button next to "Send Email" on the General section, or next to "Send Test Email" on the Site Assistant screen.
  2. Click Scan Email Settings and confirm the 8 checks reflect your site's actual current settings (e.g. temporarily set a gmail.com "From" address to see that specific check flip to an issue, then revert).
  3. Click Next: test delivery — a real test email is sent to the admin address. Check the inbox/spam folder and self-report the outcome (arrived / nothing / spam).
  4. On "the email didn't arrive", verify the guidance matches your site's actual SMTP state (no plugin / installed-but-inactive / a different active plugin / SmartSMTP active-but-unconfigured) and that the SmartSMTP install → activate → configure flow works end to end.
  5. On the spam outcome, confirm the "Not spam" guidance and the SPF/DKIM/DMARC explanation render, and "Send report to support" opens the report modal.
  6. Click Send report to support / Send a report anywhere it appears and confirm the generated report can be copied and downloaded.
  7. With no active license, confirm Health Checkup appears above the locked Templates/Custom Email items in the Emails left sub-nav; with a qualifying license, confirm it appears after them (original order).

Types of changes:

  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (modification of the currently available functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Other information:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you successfully ran tests with your changes locally?
  • Have you updated the documentation accordingly?

Changelog entry

Added a new Email Health Checkup under Settings > Emails that scans for common email-delivery misconfigurations, sends a real test email to confirm actual delivery, and gives targeted, situation-aware next steps (including one-click SmartSMTP setup) when delivery fails.

MILAN88888 and others added 4 commits July 29, 2026 09:13
Scans live email settings and DNS records for common delivery failure
causes, sends a real test email and asks the admin to confirm whether
it actually arrived, then gives targeted next steps per outcome.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@MILAN88888
MILAN88888 force-pushed the UR-4583-feature/email-delivery-health-checkup branch from f3cd0f9 to 0d0141e Compare August 3, 2026 10:00
@MILAN88888
MILAN88888 force-pushed the UR-4583-feature/email-delivery-health-checkup branch from c408397 to 36f6fc5 Compare August 3, 2026 11:26
MILAN88888 and others added 13 commits August 5, 2026 09:02
Split the scan into Mail Delivery and Plugin Settings, and add transport
and sender-identity inspection so the checkup reports why mail fails
rather than only which options are saved.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant