WordPress plugin profile

MailKite SMTP – Multi-Provider SMTP with Failover, Email Logs & Inbound Email

Reliable WordPress email: MailKite, SendGrid, Brevo, Mailgun or any SMTP — free logs, automatic failover, instant alerts, inbound email.

Version0.4.2
Active installsNew
Rating0.0 / 5
Tested toWP 7.1

About this plugin

WordPress sends email through PHP mail() by default — unauthenticated, often blocked, and invisible when it fails. MailKite SMTP replaces it with reliable delivery, a free email log, automatic failover, and inbound email. Free forever. No Pro tier. No locked features. Open source. Send through any provider MailKite (recommended): free tier, ~2-minute setup, open/click tracking, and inbound email . Sign up at mailkite.dev . SendGrid, Brevo, Mailgun — bring your own API key. Any SMTP server — host, port, TLS/SSL, credentials. Routing rules : send WooCommerce receipts via one provider and newsletters via another, by subject or recipient. Never lose an email Automatic failover — if the API provider fails, the email retries through your SMTP server or PHP mail, free. Instant failure alerts — email, Slack, Discord, or any webhook, the moment a send fails (rate-limited, no alert storms). Email log with resend and CSV export , configurable retention, and one-click resend of failures. Weekly summary — sent/failed counts, top errors, and DNS status in your inbox. Private by design Auth-email redaction (on by default) : bodies of password-reset and verification emails are never stored, so a leaked database or log page can never leak reset links. Stored credentials are encrypted at rest (AES-256-GCM keyed from your wp-config salts). No telemetry. No external calls until you connect a provider. Receive email in WordPress Send email and receive it too. Turn inbound on (one click — the webhook and its signature verification are installed on your MailKite domain automatically) and you get three things: Turn an email into a WordPress action. Every message fires do_action( 'mailkite_smtp_inbound', $message, $payload ) , so your plugins and theme can act on it: open a support ticket, attach a customer’s reply to their WooCommerce order, post to a forum, hand it to an AI agent. Nothing vanishes. Your site sends from a no-reply address and people reply anyway; bounces and out-of-office notices come back too. Without inbound those are lost silently — with it they land in the Email Log next to the message they answer, and you can reply from WordPress , in-thread, as your own domain. Or just forward it. No code: send a copy of everything to an address you already read. For professionals One-click migration from WP Mail SMTP, Easy WP SMTP, FluentSMTP, and Post SMTP. WP-CLI : wp mailkite status|test|log|purge . Site Health integration and a Domain Health tab (SPF/DMARC checks with weekly drift alerts). Settings export/import (secrets excluded) and wp-config.php constants ( MAILKITE_API_KEY , MAILKITE_DEFAULT_MAILER ) for automated provisioning. Works with WooCommerce, Contact Form 7, WPForms, and anything using wp_mail() . External services This plugin does not contact any external service until you choose a mailer and enter its credentials. Out of the box, with the built-in PHP mailer or your own SMTP server, no data leaves your site to any third party. When you select an API-based mailer, the email you send — sender, recipients, subject, body, and any attachments — is transmitted to that provider at the moment the email is sent, because that provider is what delivers it. Each service, the host it contacts, and what is sent: MailKite — host api.mailkite.dev (configurable; the plugin contacts whatever host is set as the API base). Used to deliver outbound email through your MailKite account, to report delivery events back into the Email Log, and — if you turn inbound on — to register a webhook so MailKite can deliver received email to your site. Sent when you send mail: the message and its attachments. Sent when you connect your account: your email address (to create an account) or an OAuth authorization, and the domain id you pick for inbound. Received from MailKite: inbound email addressed to your domain. Terms of service · Privacy policy SendGrid — host api.sendgrid.com . Used to deliver outbound email with your SendGrid API key. Sent when you send mail: the message and its attachments. Terms of service · Privacy policy Brevo — host api.brevo.com . Used to deliver outbound email with your Brevo API key. Sent when you send mail: the message and its attachments. Terms of use · Privacy policy Mailgun — host api.mailgun.net , or api.eu.mailgun.net when you select the EU region. Used to deliver outbound email with your Mailgun API key. Sent when you send mail: the message and its attachments. Terms of service · Privacy policy Your own SMTP server — the host, port, and credentials you configure. Used to deliver outbound email. Sent when you send mail: the message and its attachments. This is your own or your host’s server; no third-party terms apply. Failure alerts (optional, off unless you configure them) If you enter an alert webhook URL, the plugin sends a notification to that URL, and only when an email fails to send. What is sent: your site’s hostname, the failed message’s subject line, and the error text reported by the mailer. The message body is never included, and recipients are not sent as a field — though a provider’s error text can itself quote an address it rejected. The URL is yours to choose, so the receiving service is whichever one you point it at — commonly: Slack — host hooks.slack.com , when you paste a Slack incoming-webhook URL. Terms of service · Privacy policy Discord — host discord.com , when you paste a Discord webhook URL. Terms of service · Privacy policy Any other endpoint you supply, including one on your own infrastructure, which receives the same JSON payload. Leaving the alert webhook field empty means no request is ever made.