{"id":284340,"date":"2026-03-22T14:01:34","date_gmt":"2026-03-22T14:01:34","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mailtrap-mailer\/"},"modified":"2026-03-22T14:01:06","modified_gmt":"2026-03-22T14:01:06","slug":"swifttrap-for-mailtrap","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/swifttrap-for-mailtrap\/","author":16869097,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.0","stable_tag":"2.2.0","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"SwiftTrap for Mailtrap","header_author":"simmotorlp","header_description":"Routes wp_mail() through the Mailtrap HTTP API with configurable sender settings.","assets_banners_color":"1564c1","last_updated":"2026-03-22 14:01:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/swifttrap-for-mailtrap\/","header_author_uri":"https:\/\/profiles.wordpress.org\/simmotorlp\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":69,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.2.0":{"tag":"2.2.0","author":"simmotorlp","date":"2026-03-22 14:01:06"}},"upgrade_notice":{"2.1.0":"<p>New Stats page cards: domain verification and suppression list. New filters for template and custom variables support.<\/p>","2.0.0":"<p>Major update: SDK removed, plugin now uses WordPress HTTP API directly. No configuration changes needed.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3488238,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3488238,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3488238,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3488238,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[267,450,41913,6696,97810],"plugin_category":[41],"plugin_contributors":[254989],"plugin_business_model":[],"class_list":["post-284340","plugin","type-plugin","status-publish","hentry","plugin_tags-email","plugin_tags-mail","plugin_tags-mailtrap","plugin_tags-smtp","plugin_tags-transactional","plugin_category-communication","plugin_contributors-simmotorlp","plugin_committers-simmotorlp"],"banners":{"banner":"https:\/\/ps.w.org\/swifttrap-for-mailtrap\/assets\/banner-772x250.png?rev=3488238","banner_2x":"https:\/\/ps.w.org\/swifttrap-for-mailtrap\/assets\/banner-1544x500.png?rev=3488238","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/swifttrap-for-mailtrap\/assets\/icon-128x128.png?rev=3488238","icon_2x":"https:\/\/ps.w.org\/swifttrap-for-mailtrap\/assets\/icon-256x256.png?rev=3488238","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SwiftTrap for Mailtrap replaces the default WordPress <code>wp_mail()<\/code> with the Mailtrap Send API.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Send transactional and bulk emails via Mailtrap<\/li>\n<li>Automatic email categorization (welcome, password-reset, notification, etc.)<\/li>\n<li>Bulk stream routing for promotional emails<\/li>\n<li>Email logging with retention management<\/li>\n<li>Dashboard widget with account stats<\/li>\n<li>Test email from settings page<\/li>\n<\/ul>\n\n<p><strong>No SDK required<\/strong> \u2014 uses the WordPress HTTP API (<code>wp_remote_post<\/code>) for zero external dependencies.<\/p>\n\n<p><strong>Extensible via filters:<\/strong><\/p>\n\n<ul>\n<li><code>swifttrap_mailtrap_email_category<\/code> \u2014 override email category<\/li>\n<li><code>swifttrap_mailtrap_use_bulk_stream<\/code> \u2014 control bulk stream routing<\/li>\n<li><code>swifttrap_mailtrap_template<\/code> \u2014 send via Mailtrap template (template_uuid)<\/li>\n<li><code>swifttrap_mailtrap_custom_variables<\/code> \u2014 attach tracking metadata to emails<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>swifttrap-for-mailtrap<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin<\/li>\n<li>Go to Mailtrap \u2192 Settings<\/li>\n<li>Enter your Mailtrap Send API token<\/li>\n<li>Configure sender email and name<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20my%20api%20token%3F\"><h3>Where do I get my API token?<\/h3><\/dt>\n<dd><p>Log in to <a href=\"https:\/\/mailtrap.io\">mailtrap.io<\/a>, go to your sending domain, and copy the API token.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20externally%3F\"><h3>What data is sent externally?<\/h3><\/dt>\n<dd><p>This plugin sends email data (recipients, subject, body, attachments) to the Mailtrap API at <code>send.api.mailtrap.io<\/code> and <code>bulk.api.mailtrap.io<\/code>. Account stats are fetched from <code>mailtrap.io\/api\/accounts<\/code>. See <a href=\"https:\/\/mailtrap.io\/privacy-policy\">Mailtrap Privacy Policy<\/a>.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20without%20mailtrap%3F\"><h3>Does the plugin work without Mailtrap?<\/h3><\/dt>\n<dd><p>When disabled or if the API token is empty, WordPress falls back to its default mail handler.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Replaced all file_get_contents\/file_put_contents with WP_Filesystem API<\/li>\n<li>Fixed $_GET sanitization with proper wp_unslash() and phpcs annotations<\/li>\n<li>Improved PHPDoc headers across all files<\/li>\n<li>Better WordPress Coding Standards compliance<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added sending domain verification status on Stats page<\/li>\n<li>Added suppression list (bounces, complaints, unsubscribes) on Stats page<\/li>\n<li>Added <code>swifttrap_mailtrap_template<\/code> filter for Mailtrap template support<\/li>\n<li>Added <code>swifttrap_mailtrap_custom_variables<\/code> filter for email tracking metadata<\/li>\n<li>Extracted reusable <code>swifttrap_mailtrap_get_account_id()<\/code> with transient caching<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Removed Mailtrap SDK dependency \u2014 uses WordPress HTTP API directly<\/li>\n<li>Zero external dependencies, ~30 KB total plugin size<\/li>\n<li>Improved WP.org compliance<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Security: protected log directory from direct web access<\/li>\n<li>Added attachment size validation (25 MB limit)<\/li>\n<li>Added empty recipient validation<\/li>\n<li>Fixed timezone handling in log display<\/li>\n<li>Optimized email category computation<\/li>\n<li>Improved log file locking<\/li>\n<\/ul>","raw_excerpt":"Route WordPress emails through the Mailtrap Send API with stream routing, categories, and logging.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/284340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=284340"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/simmotorlp"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=284340"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=284340"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=284340"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=284340"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=284340"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=284340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}