Va al contignût
WordPress.org

Friulian

  • Temis
  • Plugin
  • Gnovis
  • A rivuart di
  • Contat
  • Get WordPress
Get WordPress
WordPress.org

Plugin Directory

SwiftTrap for Mailtrap

  • Submit a plugin
  • My favorites
  • Log in
  • Submit a plugin
  • My favorites
  • Log in

SwiftTrap for Mailtrap

By SYMONOV
Download
  • Details
  • Reviews
  • Installation
  • Development
Support

Description

SwiftTrap is a drop-in replacement for wp_mail() that routes WordPress email through the Mailtrap Email Sending API instead of SMTP. It is purpose-built for Mailtrap — not a generic SMTP plugin with a Mailtrap preset — so it exposes Mailtrap-native features that SMTP cannot: bulk vs transactional stream routing, email categories, custom variables for tracking, suppression lists, and domain verification status.

Why HTTP API instead of SMTP?

  • Lower latency — one HTTPS call per message, no MAIL FROM / RCPT TO / DATA round-trips.
  • Better deliverability — Mailtrap routes API messages through its dedicated transactional and bulk streams; SMTP doesn’t expose stream selection.
  • Native categories — every email is automatically categorized (welcome, password-reset, notification, marketing, etc.) so you can filter and report on them in Mailtrap.
  • No firewall headaches — port 587/465 blocked? API works over standard HTTPS 443.

Why SwiftTrap and not WP Mail SMTP / Post SMTP

  • Generic SMTP plugins use Mailtrap’s SMTP credentials and lose every Mailtrap-only feature.
  • SwiftTrap calls send.api.mailtrap.io for transactional mail and bulk.api.mailtrap.io for bulk mail — automatically, based on category or via filter.
  • No Mailtrap PHP SDK required. Plugin is ~30 KB total and uses only the WordPress HTTP API (wp_remote_post).
  • Stats page shows your sending domain verification status and the live suppression list (bounces, complaints, unsubscribes).

Features

  • Drop-in replacement for wp_mail() — works with WooCommerce, Contact Form 7, Gravity Forms, and any plugin that uses WordPress mail.
  • Automatic email categorization and stream routing overrides via settings grid.
  • Delivery Tracking & Webhooks — Real-time event tracking via custom REST route swifttrap/v1/webhook.
  • Suppression Management — CRUD panel for Mailtrap suppression lists with pre-send recipient suppression checks.
  • Reliability Fallback — Graceful failover back to WordPress native wp_mail() if the Mailtrap API call fails.
  • Site Health integration — Verification test checking Mailtrap token status and sending domain verification.
  • Advanced Admin Log — Search and filter logs, view rendered HTML/text bodies in modals, and manual email resend capability.
  • CSV Export — Download complete email logs directly from the dashboard.
  • WP-CLI commands — Command-line management via wp swifttrap (test, stats, prune-logs, send-suppression-sync).
  • Attachment size guard — Configurable limits to prevent oversized files from rejecting at the API gateway.
  • Test email button on the settings page.
  • Mailtrap template support via template_uuid.
  • Falls back to default WordPress mail handler when disabled or token is empty.

Extensible via filters

  • swifttrap_mailtrap_email_category — override the auto-detected email category.
  • swifttrap_mailtrap_use_bulk_stream — force a message into the bulk or transactional stream.
  • swifttrap_mailtrap_template — send via a Mailtrap template by template_uuid.
  • swifttrap_mailtrap_custom_variables — attach tracking metadata to outgoing emails.

Privacy

This plugin sends email payloads (recipients, subject, body, attachments) to the Mailtrap API at send.api.mailtrap.io and bulk.api.mailtrap.io. Account stats are fetched from mailtrap.io/api/accounts. See the Mailtrap Privacy Policy. No data is sent anywhere else.

Screenshots

  • Settings page — API token, verified sender, stream routing.
  • Stats page — sending domain verification status and suppression list (bounces, complaints, unsubscribes).
  • Email log with retention controls.
  • Dashboard widget showing integration status, sender, and quick links to Stats and Settings.
  • Test email confirmation.

Installation

  1. Install from Plugins → Add New and search for SwiftTrap for Mailtrap, or upload the swifttrap-for-mailtrap folder to /wp-content/plugins/.
  2. Activate the plugin.
  3. Go to Mailtrap → Settings.
  4. Paste your Mailtrap Send API token (Mailtrap dashboard → Sending Domains → API Tokens).
  5. Set your verified sender email and name.
  6. Click Send test email to verify delivery.

FAQ

Why use SwiftTrap instead of WP Mail SMTP or Post SMTP with Mailtrap credentials?

WP Mail SMTP and Post SMTP route through Mailtrap’s SMTP gateway and treat Mailtrap as just another SMTP host. SwiftTrap uses Mailtrap’s HTTP Send API, which exposes features SMTP cannot: bulk vs transactional stream routing, categories, custom tracking variables, template UUIDs, and live suppression-list visibility. Use SwiftTrap if you want Mailtrap-native behavior; use a generic SMTP plugin if you want a one-config-fits-all-providers setup.

Does it support Mailtrap email templates?

Yes — use the swifttrap_mailtrap_template filter to send via a template_uuid. The template variables can be passed through Mailtrap’s standard template-variables payload.

How does bulk stream routing work?

By default, marketing/promotional categories are routed to bulk.api.mailtrap.io and everything else to send.api.mailtrap.io. Override per-message with the swifttrap_mailtrap_use_bulk_stream filter — useful for batch newsletters from a custom plugin.

Where do I get my API token?

Log in to mailtrap.io, open your sending domain, go to API Tokens, and create a token with sending permissions.

What happens if I disable the plugin or remove the token?

WordPress falls back to its default wp_mail() handler. No emails are silently dropped.

Does the plugin require the Mailtrap PHP SDK?

No. SwiftTrap calls the Mailtrap REST API directly via the WordPress HTTP API. Total plugin size is around 30 KB.

What data is sent externally?

Email data (recipients, subject, body, attachments) goes to send.api.mailtrap.io and bulk.api.mailtrap.io. Account stats are fetched from mailtrap.io/api/accounts. See the Mailtrap Privacy Policy.

Is there an attachment size limit?

Yes — 25 MB per email (matches Mailtrap’s API limit).

Reviews

There are no reviews for this plugin.

Contributors & Developers

“SwiftTrap for Mailtrap” is open source software. The following people have contributed to this plugin.

Contributors
  • SYMONOV

Translate “SwiftTrap for Mailtrap” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.4.0

  • New: REST Webhook Endpoint (swifttrap/v1/webhook) for tracking delivered, bounced, opened, and clicked statuses.
  • New: Suppression Management CRUD in Admin Stats and pre-send recipient checks to skip suppressed emails.
  • New: Fallback mechanism returning null in pre_wp_mail on API failure so native wp_mail sends the email instead.
  • New: Site Health connection and verified domain status test.
  • New: Upgraded Admin logs UI with search, filtering, CSV export, iframe payload preview modals, and resend actions.
  • New: Category settings grid for category stream mapping rules and sender overrides.
  • New: WP-CLI namespace wp swifttrap (test, stats, prune-logs, send-suppression-sync).
  • New: Attachment size guard setting.
  • Refactored: Extracted CSV row formatter into a helper function for unit tests. Fully covered and verified by the test suite.

2.3.0

  • PHP 8.0 is now the minimum; tested up to WordPress 7.0.
  • Reliability: automatic retry with backoff on transient Mailtrap API errors (429/5xx, honors Retry-After).
  • Deterministic log retention via a daily cron event (replaces the previous probabilistic cleanup).
  • Account/stats/domain/suppression caches are now keyed per API token, so switching tokens no longer serves stale data.
  • Robust JSON handling for all Mailtrap API responses; multisite-safe settings cache.
  • New: “Verify token” button on the settings screen.
  • Code modernized to PHP 8 idioms; first unit-test suite added.

2.2.2

  • Plugin URI: now points to the dedicated landing page at https://plugins.symonov.com/swifttrap-for-mailtrap/
  • No code or behavior changes

2.2.1

  • Readme: USP-first rewrite emphasizing Mailtrap Email API (vs SMTP) and bulk/transactional stream routing
  • Tags: replaced email/mail/smtp with targeted mailtrap, transactional-email, email-api, wp-mail, email-log
  • FAQ: added comparison with WP Mail SMTP / Post SMTP, Mailtrap template support, and bulk stream routing
  • Tested up to WordPress 7.0

2.2.0

  • Replaced all file_get_contents/file_put_contents with WP_Filesystem API
  • Fixed $_GET sanitization with proper wp_unslash() and phpcs annotations
  • Improved PHPDoc headers across all files
  • Better WordPress Coding Standards compliance

2.1.0

  • Added sending domain verification status on Stats page
  • Added suppression list (bounces, complaints, unsubscribes) on Stats page
  • Added swifttrap_mailtrap_template filter for Mailtrap template support
  • Added swifttrap_mailtrap_custom_variables filter for email tracking metadata
  • Extracted reusable swifttrap_mailtrap_get_account_id() with transient caching

2.0.0

  • Removed Mailtrap SDK dependency — uses WordPress HTTP API directly
  • Zero external dependencies, ~30 KB total plugin size
  • Improved WP.org compliance

1.3.0

  • Security: protected log directory from direct web access
  • Added attachment size validation (25 MB limit)
  • Added empty recipient validation
  • Fixed timezone handling in log display
  • Optimized email category computation
  • Improved log file locking

Meta

  • Version 2.4.0
  • Last updated 12 oris ago
  • Active installations Fewer than 10
  • WordPress version 6.0 or higher
  • Tested up to 7.0
  • PHP version 8.0 or higher
  • Language
    English (US)
  • Tags
    Email APIemail logmailtraptransactional emailwp-mail
  • Advanced View

Ratings

No reviews have been submitted yet.

Your review

See all reviews

Contributors

  • SYMONOV

Support

Got something to say? Need help?

View support forum

  • A rivuart di
  • Gnovis
  • Hosting
  • Privacy
  • Showcase
  • Temis
  • Plugins
  • Patterns
  • Impare
  • Supuart
  • Developers
  • WordPress.tv ↗
  • Get Involved
  • Events
  • Donate ↗
  • Five for the Future
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org

Friulian

  • Visit our X (formerly Twitter) account
  • Visit our Bluesky account
  • Visit our Mastodon account
  • Visit our Threads account
  • Visit our Facebook page
  • Visit our Instagram account
  • Visit our LinkedIn account
  • Visit our TikTok account
  • Visit our YouTube channel
  • Visit our Tumblr account
Il codiç al é puisie.
The WordPress® trademark is the intellectual property of the WordPress Foundation.