{"id":378225,"date":"2026-10-19T17:28:51","date_gmt":"2026-10-19T17:28:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpmail-io-email-gateway-client\/"},"modified":"2026-10-19T17:28:29","modified_gmt":"2026-10-19T17:28:29","slug":"my-advanced-self-hosted-mail-gateway","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/my-advanced-self-hosted-mail-gateway\/","author":14784637,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.8","stable_tag":"0.1.8","tested":"7.1.3","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"My advanced self hosted mail gateway","header_author":"Anton Aleksandrov","header_description":"Send emails from WordPress through an HTTPS API email gateway, with a durable local queue and delivery history.","assets_banners_color":"dff1f8","last_updated":"2026-10-19 17:28:29","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/wpmail.io\/","header_plugin_uri":"","header_author_uri":"https:\/\/wpmail.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":65,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.8":{"tag":"0.1.8","author":"anton.aleksandrov","date":"2026-10-19 17:28:29","revision":3755267}},"upgrade_notice":{"0.1.8":"<p>Requires WordPress 6.2+. Plugin Check database and wp_mail warnings addressed.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3755267,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3755267,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3755267,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3755267,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.8"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1556,267,1890,450,6696],"plugin_category":[41],"plugin_contributors":[89990],"plugin_business_model":[],"class_list":["post-378225","plugin","type-plugin","status-publish","hentry","plugin_tags-api","plugin_tags-email","plugin_tags-gateway","plugin_tags-mail","plugin_tags-smtp","plugin_category-communication","plugin_contributors-antonaleksandrov","plugin_committers-antonaleksandrov"],"banners":{"banner":"https:\/\/ps.w.org\/my-advanced-self-hosted-mail-gateway\/assets\/banner-772x250.jpg?rev=3755267","banner_2x":"https:\/\/ps.w.org\/my-advanced-self-hosted-mail-gateway\/assets\/banner-1544x500.jpg?rev=3755267","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/my-advanced-self-hosted-mail-gateway\/assets\/icon-128x128.jpg?rev=3755267","icon_2x":"https:\/\/ps.w.org\/my-advanced-self-hosted-mail-gateway\/assets\/icon-256x256.jpg?rev=3755267","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>My advanced self hosted mail gateway replaces WordPress <code>wp_mail()<\/code> when activated so outbound messages are stored in a durable local queue first, then delivered over HTTPS to your email gateway.<\/p>\n\n<p>When you select a live gateway (hosted api.wpmail.io or a self-hosted hostname) and activate the plugin, the plugin transmits email data \u2014 recipients, subject, body, headers, and attachments \u2014 together with your API keys over HTTPS to that gateway so mail can be relayed. Saving settings or activating the plugin may call the gateway validate endpoint to verify your keys. Offline mode keeps messages only in your WordPress database and does not contact a remote gateway.<\/p>\n\n<p>Service documentation:<\/p>\n\n<ul>\n<li>Privacy: https:\/\/wpmail.io\/privacy.html<\/li>\n<li>Terms of Use: https:\/\/wpmail.io\/terms.html<\/li>\n<\/ul>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Local queue with status tracking (new, sending, sent, error)<\/li>\n<li>Hosted gateway (api.wpmail.io), self-hosted gateway hostname, or offline \/ local-queue mode<\/li>\n<li>Per-site API keys and mail history under Tools \u2192 Email API settings<\/li>\n<li>Multisite support: network-activate once; each subsite keeps its own keys, queue, and settings<\/li>\n<li>Resend failed or previously sent messages when a live gateway is configured<\/li>\n<li>Forward a queued message to another recipient (creates a new queue row; original history kept)<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>When the plugin is active and not in offline mode, email content (recipients, subject, body, headers, and attachments) is sent over HTTPS to the configured gateway (api.wpmail.io or a self-hosted host you choose), using the API keys entered in that site's settings. Saving settings or activating may call the gateway validate API with those keys. Offline mode stores mail only in the site's WordPress database and does not send it to a remote gateway.<\/p>\n\n<p>More information:<\/p>\n\n<ul>\n<li>https:\/\/wpmail.io\/privacy.html<\/li>\n<li>https:\/\/wpmail.io\/terms.html<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>my-advanced-self-hosted-mail-gateway<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>On Multisite, network-activate the plugin from Network Admin \u2192 Plugins.<\/li>\n<li>On each site, open Tools \u2192 Email API settings, enter your API keys (or choose Offline mode), save, then Activate.<\/li>\n<li>On a single-site install that is not Multisite, activate the plugin and configure it under Tools \u2192 Email API settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20each%20multisite%20subsite%20share%20the%20same%20api%20keys%3F\"><h3>Does each Multisite subsite share the same API keys?<\/h3><\/dt>\n<dd><p>No. The plugin must be network-activated, but keys, queue tables, and the settings UI are per site.<\/p><\/dd>\n<dt id=\"what%20is%20offline%20mode%3F\"><h3>What is Offline mode?<\/h3><\/dt>\n<dd><p>Offline mode stores messages in the site database only and does not call a remote gateway. Useful for staging.<\/p><\/dd>\n<dt id=\"when%20does%20the%20plugin%20contact%20a%20remote%20server%3F\"><h3>When does the plugin contact a remote server?<\/h3><\/dt>\n<dd><p>Only when a live gateway is selected: on Save\/Activate the plugin may validate API keys, and when active it sends queued mail to the gateway over HTTPS. Offline mode does not make those calls.<\/p><\/dd>\n<dt id=\"where%20is%20privacy%20information%3F\"><h3>Where is privacy information?<\/h3><\/dt>\n<dd><p>See the Privacy section below, https:\/\/wpmail.io\/privacy.html, and https:\/\/wpmail.io\/terms.html<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.8<\/h4>\n\n<ul>\n<li>Require WordPress 6.2+ and escape custom table names with $wpdb-&gt;prepare( '%i' ).<\/li>\n<li>Clear Plugin Check DirectDatabaseQuery \/ UnescapedDBParameter \/ wp_mail prefix warnings.<\/li>\n<\/ul>\n\n<h4>0.1.7<\/h4>\n\n<ul>\n<li>Align plugin slug, text domain, and display name for WordPress.org.<\/li>\n<li>Fix Stable Tag \/ Version match and translators comments for Plugin Check.<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>Initial public release candidate: local queue, hosted\/self-hosted\/offline modes, Multisite per-site configuration.<\/li>\n<\/ul>","raw_excerpt":"Send WordPress email through an HTTP API gateway instead of local SMTP, with a per-site local queue and delivery history.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/378225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=378225"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/antonaleksandrov"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=378225"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=378225"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=378225"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=378225"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=378225"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=378225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}