WT SMTP
WT SMTP

WT SMTP

0/5 (0 ratings) — active installs Updated Sep 25, 2026

WT Waitlist sends back-in-stock emails, WT Hardening logs security events, and now WT SMTP makes sure those emails actually arrive — and tells you exactly why they do not.

Built by the webmasters.team team. Open-source, no external dependencies, no Pro upsell.

Why another SMTP plugin?

Because most SMTP plugins tell you whether a send returned true or false. WT SMTP tells you why mail goes to spam before you even press Send: the Settings page runs a live SPF / DKIM / DMARC / MX check against your From domain and surfaces missing records inline. No external tool, no copy-pasting domain names into third-party validators.

Key features

  • Drop-in SMTP for any provider — generic host/port/encryption/auth, plus one-click presets for Gmail, Outlook / Microsoft365, SendGrid, Brevo, Mailgun, Amazon SES and MailHog (dev).
  • AES-256 password encryption at rest when you define WTSMTP_KEY in wp-config.php — falls back to plaintext storage with a visible warning if the key is missing.
  • Mail log in a dedicated table ({prefix}_wtsmtp_log) — metadata only, no bodies or attachments — with one-click resend for failed messages and configurable retention (default 30 days).
  • Live DNS health check for the From domain — MX, SPF, DMARC, plus DKIM probing for any selectors you configure (defaults: default, google, selector1). Cached for 1 hour to keep the Settings page snappy.
  • Test email with full PHPMailer ErrorInfo surfaced on failure — the actual reason wp_mail() returned false.
  • Conflict detection — warns when another SMTP plugin (WP Mail SMTP, FluentSMTP, Post SMTP, Easy WP SMTP…) is also active and would fight over phpmailer_init.
  • Copy diagnostic info — paste-ready text block with environment, config, log counts, DNS results and conflict notes for support tickets.
  • GDPR-friendly recipient anonymization in the log (e.g. j***@example.com) — opt-in.
  • Zero external dependencies — no Composer, no JS framework, no call-home.

External services

WT SMTP sends your site’s outgoing email through an SMTP server, and it can look up your domain’s email DNS records for the built-in deliverability diagnostic. Both are described below.

Your SMTP server / provider

When WordPress sends an email (wp_mail()), WT SMTP hands the message to the SMTP server you configure under Settings -> WT SMTP. The email (its headers, subject, recipients and body) and the SMTP username and password you entered are transmitted to that server whenever WordPress sends a message.

The SMTP server can be your own mail server or a third-party provider. For convenience the plugin ships connection presets for the providers below; choosing a preset only fills in the host and port. You still enter your own credentials, and nothing is sent anywhere until WordPress actually sends an email:

  • Gmail / Google Workspace – terms: https://policies.google.com/terms – privacy: https://policies.google.com/privacy
  • Microsoft 365 / Outlook – terms: https://www.microsoft.com/servicesagreement – privacy: https://privacy.microsoft.com/privacystatement
  • SendGrid (Twilio) – terms: https://www.twilio.com/legal/tos – privacy: https://www.twilio.com/legal/privacy
  • Brevo (Sendinblue) – terms: https://www.brevo.com/legal/termsofuse/ – privacy: https://www.brevo.com/legal/privacypolicy/
  • Mailgun – terms: https://www.mailgun.com/legal/terms/ – privacy: https://www.mailgun.com/legal/privacy-policy/
  • Amazon SES – terms: https://aws.amazon.com/service-terms/ – privacy: https://aws.amazon.com/privacy/

If you use a different SMTP server, its own terms and privacy policy apply. WT SMTP does not send your data to webmasters.team or any of its own servers.

Domain DNS lookup (deliverability diagnostic)

The optional “DNS health check” on the settings screen performs standard public DNS lookups (MX, SPF, DMARC and DKIM records) for your site’s own email domain, using PHP’s dns_get_record(). It is a normal DNS query and the result is cached for one hour. No personal data is sent, and the lookup only runs when you open the diagnostic.