{"id":333140,"date":"2026-06-30T13:35:50","date_gmt":"2026-06-30T13:35:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/smtppai\/"},"modified":"2026-06-30T13:35:17","modified_gmt":"2026-06-30T13:35:17","slug":"smtp-pai","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/smtp-pai\/","author":8349978,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"SMTPPai","header_author":"Dewan Shahedur Rahman","header_description":"Free WordPress SMTP with native API mailers, unlimited connections, per-route routing, backup failover, and an email log.","assets_banners_color":"e8ebeb","last_updated":"2026-06-30 13:35:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/smtp-pai\/","header_author_uri":"https:\/\/mailpai.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"dewan shahedur rahman","date":"2026-06-30 13:35:17"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3591569,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3591569,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3591569,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3591569,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3591569,"resolution":"1","location":"assets","locale":"","width":1280,"height":646},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3591569,"resolution":"2","location":"assets","locale":"","width":1280,"height":664},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3591569,"resolution":"3","location":"assets","locale":"","width":1280,"height":631},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3591569,"resolution":"4","location":"assets","locale":"","width":1280,"height":645},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3591569,"resolution":"5","location":"assets","locale":"","width":1280,"height":641},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3591569,"resolution":"6","location":"assets","locale":"","width":1280,"height":648},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3591569,"resolution":"7","location":"assets","locale":"","width":1280,"height":643}},"screenshots":{"1":"Dashboard - manage connections and send test email from one place","2":"Add connection - choose from API and SMTP providers","3":"Amazon SES - API key setup with inline setup guide","4":"Specify Connections - route WordPress, WooCommerce, newsletter, and outreach mail separately","5":"Backup - global fallback connection for provider failover","6":"Email log - delivery status, detail view, server response, and message preview","7":"Settings - log retention and uninstall options"}},"plugin_section":[],"plugin_tags":[265,26736,6696,286,41812],"plugin_category":[41,45],"plugin_contributors":[261414],"plugin_business_model":[],"class_list":["post-333140","plugin","type-plugin","status-publish","hentry","plugin_tags-amazon-ses","plugin_tags-email-log","plugin_tags-smtp","plugin_tags-woocommerce","plugin_tags-wp-mail","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-dewan-shahedur-rahman","plugin_committers-dewan-shahedur-rahman"],"banners":{"banner":"https:\/\/ps.w.org\/smtp-pai\/assets\/banner-772x250.png?rev=3591569","banner_2x":"https:\/\/ps.w.org\/smtp-pai\/assets\/banner-1544x500.png?rev=3591569","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/smtp-pai\/assets\/icon-128x128.png?rev=3591569","icon_2x":"https:\/\/ps.w.org\/smtp-pai\/assets\/icon-256x256.png?rev=3591569","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/smtp-pai\/assets\/screenshot-1.png?rev=3591569","caption":"Dashboard - manage connections and send test email from one place"},{"src":"https:\/\/ps.w.org\/smtp-pai\/assets\/screenshot-2.png?rev=3591569","caption":"Add connection - choose from API and SMTP providers"},{"src":"https:\/\/ps.w.org\/smtp-pai\/assets\/screenshot-3.png?rev=3591569","caption":"Amazon SES - API key setup with inline setup guide"},{"src":"https:\/\/ps.w.org\/smtp-pai\/assets\/screenshot-4.png?rev=3591569","caption":"Specify Connections - route WordPress, WooCommerce, newsletter, and outreach mail separately"},{"src":"https:\/\/ps.w.org\/smtp-pai\/assets\/screenshot-5.png?rev=3591569","caption":"Backup - global fallback connection for provider failover"},{"src":"https:\/\/ps.w.org\/smtp-pai\/assets\/screenshot-6.png?rev=3591569","caption":"Email log - delivery status, detail view, server response, and message preview"},{"src":"https:\/\/ps.w.org\/smtp-pai\/assets\/screenshot-7.png?rev=3591569","caption":"Settings - log retention and uninstall options"}],"raw_content":"<!--section=description-->\n<p>SMTPPai is a free <strong>WordPress mail SMTP plugin<\/strong> that fixes broken <code>wp_mail()<\/code> delivery. Connect Amazon SES, Mailgun, Postmark, Resend, Brevo, Mailjet, Gmail, Microsoft 365, or any SMTP server from wp-admin\u2014with test email, an email log, and inline setup help on each connection screen.<\/p>\n\n<p>Many hosts block or spam-filter PHP <code>mail()<\/code>. SMTPPai routes WooCommerce orders, password resets, contact forms, and admin notices through your provider instead.<\/p>\n\n<p><strong>Why SMTPPai instead of another SMTP plugin?<\/strong><\/p>\n\n<p>Most SMTP plugins in the directory offer one connection and SMTP relay only. SMTPPai is built for sites that need more control without a paid license:<\/p>\n\n<ul>\n<li><strong>Unlimited connections (free)<\/strong> \u2014 run SES for transactional mail, Mailgun for WooCommerce, and Gmail for admin alerts at the same time<\/li>\n<li><strong>Native API mailers<\/strong> \u2014 Amazon SES, Mailgun, Postmark, Resend, Brevo, and others use each provider's HTTP API, not a generic SMTP shim<\/li>\n<li><strong>Specify Connections<\/strong> \u2014 assign WordPress, WooCommerce, newsletter, and outreach mail to different providers from one screen<\/li>\n<li><strong>Backup failover<\/strong> \u2014 if the primary connection fails, SMTPPai retries through a second provider automatically<\/li>\n<li><strong>OAuth that works on local and staging sites<\/strong> \u2014 Gmail and Microsoft sign-in use a fixed HTTPS redirect relay so you do not need a public production URL in Google Cloud or Entra<\/li>\n<li><strong>Secrets in wp-config.php<\/strong> \u2014 optional constants keep API keys out of the database<\/li>\n<li><strong>Email log with retry<\/strong> \u2014 see delivery status, server responses, and resend failed messages from wp-admin<\/li>\n<li><strong>Developer route API<\/strong> \u2014 send or check readiness per route (<code>wordpress<\/code>, <code>woocommerce<\/code>, <code>newsletter<\/code>, <code>outreach<\/code>)<\/li>\n<li><strong>No usage telemetry<\/strong> \u2014 SMTPPai does not phone home or require a MailPai account for core delivery<\/li>\n<\/ul>\n\n<p><strong>What you get (free):<\/strong><\/p>\n\n<ul>\n<li>Unlimited connections\u2014native API mailers plus OAuth for Google and Microsoft<\/li>\n<li><strong>Specify Connections<\/strong> to split WordPress, WooCommerce, newsletter, and outreach mail<\/li>\n<li><strong>Backup<\/strong> when your primary provider fails<\/li>\n<li><strong>Email log<\/strong> with sent\/failed status, server response, and retry<\/li>\n<li>Encrypted secrets in the database or storage in <code>wp-config.php<\/code> only<\/li>\n<\/ul>\n\n<p><strong>Supported mailers:<\/strong> Amazon SES, Mailgun, Postmark, Brevo, Resend, MailerSend, Mailjet, Elastic Email, Mailchimp Transactional (Mandrill), SparkPost, Zepto Mail, SMTP2GO, SMTP.com, Google Workspace\/Gmail, Microsoft 365\/Outlook, and <strong>Other SMTP<\/strong> (Zoho, cPanel, custom relays).<\/p>\n\n<p><strong>Quick start:<\/strong> Install \u2192 <strong>SMTPPai \u2192 Dashboard \u2192 Add connection<\/strong> \u2192 save and <strong>Test<\/strong> \u2192 <strong>Specify Connections<\/strong> \u2192 assign <strong>WordPress mail<\/strong> (and <strong>WooCommerce mail<\/strong> if needed). Optional <strong>Backup<\/strong> under <strong>SMTPPai \u2192 Backup<\/strong>.<\/p>\n\n<p><strong>Gmail and Microsoft OAuth<\/strong> use your own Google Cloud or Microsoft Entra app. Sign-in may briefly visit <strong>auth.mailpai.com<\/strong> (HTTPS redirect relay); OAuth tokens stay on your WordPress site. You may get a Google or Microsoft security alert on your phone\u2014normal account protection; approve only if you started sign-in in wp-admin. See <strong>FAQ<\/strong> for details.<\/p>\n\n<p><strong>MailPai<\/strong> (optional, upcoming) will handle newsletter and outreach campaigns; SMTPPai delivers the mail. Routes for newsletter and outreach are already available in Specify Connections.<\/p>\n\n<p><strong>Developer hooks:<\/strong> <code>mailpai_smtp_send_for_route()<\/code>, <code>mailpai_smtp_is_route_ready()<\/code>, and related functions\u2014see FAQ.<\/p>\n\n<p><strong>Note:<\/strong> Messages with file attachments may still use default WordPress mail until a future update adds full attachment routing.<\/p>\n\n<p>Per-provider setup steps (Amazon SES, Mailgun, OAuth, and others) are in <strong>FAQ<\/strong> below and in the setup guide inside each connection form in wp-admin.<\/p>\n\n<h3>External services<\/h3>\n\n<p>SMTPPai contacts external servers only when you configure a feature that needs them. SMTPPai does <strong>not<\/strong> send site data to MailPai for marketing, analytics, or licensing during normal operation.<\/p>\n\n<p><strong>What data email providers receive<\/strong><\/p>\n\n<p>When you save a connection, SMTPPai stores your API keys, OAuth tokens, or SMTP credentials on <strong>your WordPress server<\/strong> only. When WordPress sends mail through that connection (including test emails you trigger in wp-admin), SMTPPai transmits sender address, recipient address(es), subject, message body, and optional headers (for example Reply-To or CC) to the provider's API or SMTP server over HTTPS\/TLS. Nothing is sent to a provider until you configure that connection and mail is sent through it.<\/p>\n\n<p><strong>OAuth redirect relay (auth.mailpai.com)<\/strong><\/p>\n\n<p>Used when you connect <strong>Google Workspace\/Gmail<\/strong> or <strong>Microsoft 365\/Outlook<\/strong> with OAuth.<\/p>\n\n<ol>\n<li>You click authorize in WordPress admin (SMTPPai).<\/li>\n<li>Google or Microsoft shows a consent screen for send-mail access.<\/li>\n<li>After you approve, the provider redirects the browser to a fixed HTTPS relay:\n\n<ul>\n<li>https:\/\/auth.mailpai.com\/google<\/li>\n<li>https:\/\/auth.mailpai.com\/microsoft<\/li>\n<\/ul><\/li>\n<li>The relay immediately sends you back to your site's wp-admin with a one-time authorization code.<\/li>\n<li>Your WordPress site exchanges the code for OAuth tokens using the Client ID and Secret <strong>you<\/strong> entered in the connection form. Tokens are saved <strong>on your server<\/strong> (encrypted in the database or in wp-config.php constants).<\/li>\n<\/ol>\n\n<p>The relay forwards the authorization code only. It does not store OAuth refresh tokens or read your mailbox.<\/p>\n\n<p>Service: https:\/\/auth.mailpai.com\/\nTerms: https:\/\/mailpai.com\/terms-conditions\/\nPrivacy: https:\/\/mailpai.com\/privacy-policy\/<\/p>\n\n<p><strong>Google (OAuth and Gmail API)<\/strong><\/p>\n\n<p>Used when you connect <strong>Google Workspace\/Gmail<\/strong> with OAuth. Your WordPress site contacts <code>accounts.google.com<\/code>, <code>oauth2.googleapis.com<\/code>, and <code>www.googleapis.com<\/code> to complete sign-in and refresh tokens. After authorization, mail is sent using the Gmail API scope you approve.<\/p>\n\n<p>Data sent: OAuth authorization codes and token requests during setup; your Google account email during sign-in; sender, recipients, subject, and message body when WordPress sends mail through the Gmail connection.<\/p>\n\n<p>Terms: https:\/\/policies.google.com\/terms\nPrivacy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Microsoft (OAuth and Microsoft 365 \/ Outlook)<\/strong><\/p>\n\n<p>Used when you connect <strong>Microsoft 365\/Outlook<\/strong> with OAuth. Your WordPress site contacts <code>login.microsoftonline.com<\/code> to complete sign-in and refresh tokens, then sends mail through Microsoft mail services.<\/p>\n\n<p>Data sent: OAuth authorization codes and token requests during setup; your Microsoft account email during sign-in; sender, recipients, subject, and message body when WordPress sends mail through the Microsoft connection.<\/p>\n\n<p>Terms: https:\/\/www.microsoft.com\/en-us\/servicesagreement\/\nPrivacy: https:\/\/privacy.microsoft.com\/privacystatement<\/p>\n\n<p><strong>Amazon SES<\/strong><\/p>\n\n<p>Used when you add an <strong>Amazon SES<\/strong> connection. SMTPPai signs requests to the regional SES API endpoint (for example <code>email.us-east-1.amazonaws.com<\/code>) using the IAM keys you provide.<\/p>\n\n<p>Data sent: IAM access key ID and request signature with each API call; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/aws.amazon.com\/service-terms\/\nPrivacy: https:\/\/aws.amazon.com\/privacy\/<\/p>\n\n<p><strong>Mailgun<\/strong><\/p>\n\n<p>Used when you add a <strong>Mailgun<\/strong> connection. SMTPPai calls <code>api.mailgun.net<\/code> or <code>api.eu.mailgun.net<\/code>.<\/p>\n\n<p>Data sent: Mailgun API key with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/www.mailgun.com\/legal\/terms-of-service\/\nPrivacy: https:\/\/www.mailgun.com\/legal\/privacy-policy\/<\/p>\n\n<p><strong>Postmark<\/strong><\/p>\n\n<p>Used when you add a <strong>Postmark<\/strong> connection. SMTPPai calls <code>api.postmarkapp.com<\/code>.<\/p>\n\n<p>Data sent: Postmark Server API token with each request; sender, recipients, subject, message body, and message stream ID when mail is sent.<\/p>\n\n<p>Terms: https:\/\/postmarkapp.com\/terms-of-service\nPrivacy: https:\/\/postmarkapp.com\/privacy-policy<\/p>\n\n<p><strong>Brevo<\/strong><\/p>\n\n<p>Used when you add a <strong>Brevo<\/strong> connection. SMTPPai calls <code>api.brevo.com<\/code>.<\/p>\n\n<p>Data sent: Brevo API key with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/www.brevo.com\/legal\/termsofuse\/\nPrivacy: https:\/\/www.brevo.com\/legal\/privacypolicy<\/p>\n\n<p><strong>Resend<\/strong><\/p>\n\n<p>Used when you add a <strong>Resend<\/strong> connection. SMTPPai calls <code>api.resend.com<\/code>.<\/p>\n\n<p>Data sent: Resend API key with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/resend.com\/legal\/terms-of-service\nPrivacy: https:\/\/resend.com\/legal\/privacy-policy<\/p>\n\n<p><strong>MailerSend<\/strong><\/p>\n\n<p>Used when you add a <strong>MailerSend<\/strong> connection. SMTPPai calls <code>api.mailersend.com<\/code>.<\/p>\n\n<p>Data sent: MailerSend API token with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/www.mailersend.com\/legal\/terms-of-use\nPrivacy: https:\/\/www.mailersend.com\/legal\/privacy-policy<\/p>\n\n<p><strong>Mailjet<\/strong><\/p>\n\n<p>Used when you add a <strong>Mailjet<\/strong> connection. SMTPPai calls <code>api.mailjet.com<\/code>.<\/p>\n\n<p>Data sent: Mailjet API key and secret with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/www.mailjet.com\/legal\/terms\/\nPrivacy: https:\/\/www.mailjet.com\/legal\/privacy-policy\/<\/p>\n\n<p><strong>Elastic Email<\/strong><\/p>\n\n<p>Used when you add an <strong>Elastic Email<\/strong> connection. SMTPPai calls <code>api.elasticemail.com<\/code>.<\/p>\n\n<p>Data sent: Elastic Email API key with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/elasticemail.com\/legal\/terms-of-use\/\nPrivacy: https:\/\/elasticemail.com\/legal\/privacy-policy\/<\/p>\n\n<p><strong>Mailchimp Transactional (Mandrill)<\/strong><\/p>\n\n<p>Used when you add a <strong>Mailchimp Transactional (Mandrill)<\/strong> connection. SMTPPai calls <code>mandrillapp.com<\/code>.<\/p>\n\n<p>Data sent: Mandrill API key with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/mailchimp.com\/legal\/terms\/\nPrivacy: https:\/\/mailchimp.com\/legal\/privacy\/<\/p>\n\n<p><strong>SparkPost<\/strong><\/p>\n\n<p>Used when you add a <strong>SparkPost<\/strong> connection. SMTPPai calls <code>api.sparkpost.com<\/code> or <code>api.eu.sparkpost.com<\/code>.<\/p>\n\n<p>Data sent: SparkPost API key with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/www.sparkpost.com\/policies\/tos\/\nPrivacy: https:\/\/www.sparkpost.com\/policies\/privacy\/<\/p>\n\n<p><strong>Zepto Mail (Zoho)<\/strong><\/p>\n\n<p>Used when you add a <strong>Zepto Mail<\/strong> connection. SMTPPai calls <code>api.zeptomail.com<\/code>, <code>api.zeptomail.eu<\/code>, or <code>api.zeptomail.in<\/code> depending on the region you select.<\/p>\n\n<p>Data sent: Zepto Mail Send Mail token with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/www.zoho.com\/terms.html\nPrivacy: https:\/\/www.zoho.com\/privacy.html<\/p>\n\n<p><strong>SMTP2GO<\/strong><\/p>\n\n<p>Used when you add an <strong>SMTP2GO<\/strong> connection. SMTPPai calls <code>api.smtp2go.com<\/code>.<\/p>\n\n<p>Data sent: SMTP2GO API key with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/www.smtp2go.com\/terms\/\nPrivacy: https:\/\/www.smtp2go.com\/privacy\/<\/p>\n\n<p><strong>SMTP.com<\/strong><\/p>\n\n<p>Used when you add an <strong>SMTP.com<\/strong> connection. SMTPPai calls <code>api.smtp.com<\/code>.<\/p>\n\n<p>Data sent: SMTP.com API key and channel name with each request; sender, recipients, subject, and message body when mail is sent.<\/p>\n\n<p>Terms: https:\/\/smtp.com\/terms-of-use\/\nPrivacy: https:\/\/smtp.com\/privacy-policy\/<\/p>\n\n<p><strong>Other SMTP (user-configured)<\/strong><\/p>\n\n<p>Used when you add <strong>Other SMTP<\/strong> and enter a hostname yourself (for example Zoho Mail, cPanel, or a custom relay). SMTPPai connects only to the host, port, and encryption settings you provide.<\/p>\n\n<p>Data sent: SMTP username and password during authentication; sender, recipients, subject, and message body when mail is sent. Terms and privacy are governed by <strong>your<\/strong> SMTP provider\u2014not by SMTPPai or MailPai.<\/p>\n\n<h3>Privacy<\/h3>\n\n<ul>\n<li>Email log may store addresses, subjects, and optionally message bodies on your server (body logging is off by default).<\/li>\n<li>Credentials are encrypted in the database or stored in wp-config.php.<\/li>\n<li>No usage telemetry is sent to MailPai.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<p><strong>Install from WordPress.org (wp smtp download)<\/strong><\/p>\n\n<ol>\n<li>In wp-admin go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>SMTPPai<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<p><strong>Install by upload<\/strong><\/p>\n\n<ol>\n<li>Download the plugin zip from WordPress.org.<\/li>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Upload the zip and activate.<\/li>\n<li>The folder should be <code>\/wp-content\/plugins\/smtp-pai\/<\/code>.<\/li>\n<\/ol>\n\n<p><strong>Quick start with Amazon SES<\/strong><\/p>\n\n<ol>\n<li><strong>SMTPPai \u2192 Dashboard \u2192 Add connection \u2192 Amazon SES<\/strong>.<\/li>\n<li>Complete IAM keys, region, and sender fields (see <strong>FAQ \u2192 Amazon SES<\/strong>).<\/li>\n<li>Save, <strong>Test<\/strong>, then <strong>Specify Connections \u2192 WordPress mail<\/strong>.<\/li>\n<\/ol>\n\n<p><strong>Quick start with another mailer<\/strong><\/p>\n\n<ol>\n<li><strong>Dashboard \u2192 Add connection<\/strong> and pick Mailgun, Resend, Gmail, or <strong>Other SMTP<\/strong>.<\/li>\n<li>Save, test, assign routes.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20set%20up%20smtp%20in%20wordpress%3F\"><h3>How do I set up SMTP in WordPress?<\/h3><\/dt>\n<dd><p>Install SMTPPai, add a connection for your mailer, send a test email, and assign <strong>WordPress mail<\/strong> under <strong>Specify Connections<\/strong>. WordPress <code>wp_mail()<\/code> then uses your provider instead of PHP <code>mail()<\/code>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20send%20wordpress%20email%20through%20amazon%20ses%3F\"><h3>How do I send WordPress email through Amazon SES?<\/h3><\/dt>\n<dd><p>Add an <strong>Amazon SES<\/strong> connection with IAM keys and the correct region, verify your domain in SES, test, and assign <strong>WordPress mail<\/strong>. SMTPPai uses the native SES API.<\/p><\/dd>\n<dt id=\"is%20smtppai%20a%20free%20wordpress%20smtp%20plugin%3F\"><h3>Is SMTPPai a free WordPress SMTP plugin?<\/h3><\/dt>\n<dd><p>Yes. Connections, Specify Connections, backup, email log, and Amazon SES API support are included without a paid license.<\/p><\/dd>\n<dt id=\"is%20amazon%20ses%20free%20in%20smtppai%3F\"><h3>Is Amazon SES free in SMTPPai?<\/h3><\/dt>\n<dd><p>Yes. Native Amazon SES API setup is included. AWS still bills you for SES usage on your AWS account.<\/p><\/dd>\n<dt id=\"does%20smtppai%20use%20the%20amazon%20ses%20api%20or%20smtp%3F\"><h3>Does SMTPPai use the Amazon SES API or SMTP?<\/h3><\/dt>\n<dd><p>Amazon SES uses the <strong>native API<\/strong> with IAM keys. Gmail, Microsoft, and <strong>Other SMTP<\/strong> use SMTP or OAuth as shown in the wizard.<\/p><\/dd>\n<dt id=\"which%20aws%20region%20should%20i%20use%20for%20ses%3F\"><h3>Which AWS region should I use for SES?<\/h3><\/dt>\n<dd><p>Use the region where your domain or sender is verified in Amazon SES.<\/p><\/dd>\n<dt id=\"wordpress%20is%20not%20sending%20email.%20will%20this%20help%3F\"><h3>WordPress is not sending email. Will this help?<\/h3><\/dt>\n<dd><p>Usually yes, once a connection works and routes are assigned. Check the test email button and <strong>Email Log<\/strong>.<\/p><\/dd>\n<dt id=\"does%20smtppai%20work%20with%20woocommerce%3F\"><h3>Does SMTPPai work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Assign <strong>WooCommerce mail<\/strong> in Specify Connections.<\/p><\/dd>\n<dt id=\"can%20i%20use%20mailgun%2C%20resend%2C%20or%20mailjet%20instead%20of%20ses%3F\"><h3>Can I use Mailgun, Resend, or Mailjet instead of SES?<\/h3><\/dt>\n<dd><p>Yes. Add any supported mailer and assign it to the routes you need.<\/p><\/dd>\n<dt id=\"can%20i%20use%20zoho%20mail%20with%20smtppai%3F\"><h3>Can I use Zoho Mail with SMTPPai?<\/h3><\/dt>\n<dd><p>Yes. Choose <strong>Other SMTP<\/strong> and enter Zoho's SMTP hostname, port, and credentials from your Zoho account.<\/p><\/dd>\n<dt id=\"what%20is%20specify%20connections%3F\"><h3>What is Specify Connections?<\/h3><\/dt>\n<dd><p>It maps WordPress, WooCommerce, Newsletter, and Outreach mail to different connections.<\/p><\/dd>\n<dt id=\"what%20are%20newsletter%20and%20outreach%20routes%3F\"><h3>What are Newsletter and Outreach routes?<\/h3><\/dt>\n<dd><p>They route <strong>email marketing<\/strong> and <strong>outreach<\/strong> mail for the upcoming MailPai plugin. SMTPPai handles delivery only.<\/p><\/dd>\n<dt id=\"do%20i%20need%20mailpai%3F\"><h3>Do I need MailPai?<\/h3><\/dt>\n<dd><p>No for WordPress and WooCommerce mail. MailPai is optional for campaigns later.<\/p><\/dd>\n<dt id=\"does%20smtppai%20include%20an%20email%20log%3F\"><h3>Does SMTPPai include an email log?<\/h3><\/dt>\n<dd><p>Yes, with sent and failed status and server responses.<\/p><\/dd>\n<dt id=\"are%20api%20keys%20stored%20securely%3F\"><h3>Are API keys stored securely?<\/h3><\/dt>\n<dd><p>Encrypted in the database, or in <code>wp-config.php<\/code> if you prefer.<\/p><\/dd>\n<dt id=\"why%20does%20oauth%20use%20auth.mailpai.com%3F\"><h3>Why does OAuth use auth.mailpai.com?<\/h3><\/dt>\n<dd><p>Google and Microsoft require a <strong>fixed HTTPS redirect URL<\/strong> when you register an OAuth app. Many WordPress sites use local URLs, HTTP, or changing domains, so each site cannot easily register its own redirect in Google Cloud or Microsoft Entra.<\/p>\n\n<p>SMTPPai uses <strong>auth.mailpai.com<\/strong> as a short redirect relay:<\/p>\n\n<ul>\n<li><strong>Google:<\/strong> https:\/\/auth.mailpai.com\/google<\/li>\n<li><strong>Microsoft:<\/strong> https:\/\/auth.mailpai.com\/microsoft<\/li>\n<\/ul>\n\n<p>During sign-in your browser visits the relay for a moment. The relay forwards the <strong>authorization code<\/strong> to your wp-admin URL. Your WordPress site then exchanges that code for tokens using <strong>your<\/strong> Client ID and Secret. <strong>Refresh tokens stay on your server<\/strong>; the relay does not store them.<\/p>\n\n<p>You may see <strong>mailpai.com<\/strong> or <strong>auth.mailpai.com<\/strong> on Google's or Microsoft's consent or security screens. That is the redirect helper, not a request to move your mail to MailPai. Site visitors do not go through this flow\u2014only a WordPress admin connecting Gmail or Microsoft in SMTPPai.<\/p><\/dd>\n<dt id=\"will%20i%20get%20a%20security%20notification%20on%20my%20phone%20when%20connecting%20gmail%20or%20outlook%3F\"><h3>Will I get a security notification on my phone when connecting Gmail or Outlook?<\/h3><\/dt>\n<dd><p>Often yes. Google and Microsoft commonly send an email or push alert when a new app or sign-in requests access to an account (for example, \u201cIs this you?\u201d or \u201cAn app wants to access your account\u201d). That is normal account security. Approve only if <strong>you<\/strong> started OAuth from <strong>SMTPPai \u2192 Dashboard<\/strong> in WordPress admin.<\/p><\/dd>\n<dt id=\"who%20can%20authorize%20gmail%20or%20microsoft%20in%20smtppai%3F\"><h3>Who can authorize Gmail or Microsoft in SMTPPai?<\/h3><\/dt>\n<dd><p>Only WordPress users who can manage SMTPPai settings (typically administrators). End users of your website do not see the OAuth flow unless an admin connects a mailbox.<\/p><\/dd>\n<dt id=\"does%20smtppai%20replace%20wp_mail%3F\"><h3>Does SMTPPai replace wp_mail?<\/h3><\/dt>\n<dd><p>For configured routes, yes. Attachments today may still use default WordPress mail.<\/p><\/dd>\n<dt id=\"will%20smtppai%20work%20with%20contact%20form%207%20or%20wpforms%3F\"><h3>Will SMTPPai work with Contact Form 7 or WPForms?<\/h3><\/dt>\n<dd><p>Yes when they use <code>wp_mail()<\/code> and WordPress mail has a connection.<\/p><\/dd>\n<dt id=\"can%20i%20use%20multiple%20providers%20at%20once%3F\"><h3>Can I use multiple providers at once?<\/h3><\/dt>\n<dd><p>Yes. Unlimited connections and per-route assignment.<\/p><\/dd>\n<dt id=\"what%20does%20backup%20do%3F\"><h3>What does backup do?<\/h3><\/dt>\n<dd><p>Retries delivery through a second connection when the first fails.<\/p><\/dd>\n<dt id=\"will%20you%20add%20migration%20from%20other%20smtp%20plugins%3F\"><h3>Will you add migration from other SMTP plugins?<\/h3><\/dt>\n<dd><p>One-click import is planned.<\/p><\/dd>\n<dt id=\"will%20you%20add%20failure%20alerts%3F\"><h3>Will you add failure alerts?<\/h3><\/dt>\n<dd><p>Planned. The email log shows failures today.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><p>Use the WordPress.org support forum for this plugin.<\/p><\/dd>\n<dt id=\"is%20there%20a%20developer%20api%3F\"><h3>Is there a developer API?<\/h3><\/dt>\n<dd><p>Yes. Functions include <code>mailpai_smtp_is_active()<\/code>, <code>mailpai_smtp_send_for_route( $route, $args )<\/code>, <code>mailpai_smtp_is_route_ready( $route )<\/code>, and <code>mailpai_smtp_get_route_connection( $route )<\/code>. Routes: <code>wordpress<\/code>, <code>woocommerce<\/code>, <code>newsletter<\/code>, <code>outreach<\/code>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20up%20gmail%20or%20google%20workspace%20with%20oauth%3F\"><h3>How do I set up Gmail or Google Workspace with OAuth?<\/h3><\/dt>\n<dd><p>Add <strong>Google Workplace\/Gmail<\/strong>, enter your Google Cloud <strong>Application Client ID<\/strong> and <strong>Secret<\/strong>, save, then authorize. Register redirect URI <strong>https:\/\/auth.mailpai.com\/google<\/strong> in Google Cloud Console. OAuth tokens stay on your site; you may get a Google security alert on your phone\u2014approve only if you started sign-in in wp-admin. Use <strong>Remove authorization<\/strong> to change mailbox or disconnect.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20up%20microsoft%20365%20or%20outlook%20with%20oauth%3F\"><h3>How do I set up Microsoft 365 or Outlook with OAuth?<\/h3><\/dt>\n<dd><p>Add <strong>Microsoft 365\/Outlook<\/strong>, enter your Microsoft Entra <strong>Application Client ID<\/strong> and <strong>Secret<\/strong>, save, then authorize. Register redirect URI <strong>https:\/\/auth.mailpai.com\/microsoft<\/strong> in Entra. Tokens stay on your site. Use <strong>Remove authorization<\/strong> to change mailbox or disconnect.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20up%20amazon%20ses%20in%20detail%3F\"><h3>How do I set up Amazon SES in detail?<\/h3><\/dt>\n<dd><p>Verify your domain in SES and create IAM keys with send permission. In SMTPPai add <strong>Amazon SES<\/strong>, paste <strong>Access key ID<\/strong> and <strong>Secret access key<\/strong>, choose the matching <strong>Region<\/strong>, set <strong>From email<\/strong>, test, and assign <strong>WordPress mail<\/strong>. If SES is in sandbox, verify recipient addresses or request production access. Optional wp-config constants: <code>MAILPAI_SMTP_SES_ACCESS_KEY<\/code>, <code>MAILPAI_SMTP_SES_SECRET_KEY<\/code>, <code>MAILPAI_SMTP_SES_REGION<\/code>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20up%20mailgun%2C%20postmark%2C%20or%20resend%3F\"><h3>How do I set up Mailgun, Postmark, or Resend?<\/h3><\/dt>\n<dd><p><strong>Mailgun:<\/strong> paste private API key and sending domain; pick US\/EU region to match your account. <strong>Postmark:<\/strong> paste Server API token. <strong>Resend:<\/strong> paste API key and use a verified <strong>From email<\/strong>. Test each connection, then assign routes in <strong>Specify Connections<\/strong>. Inline setup guides appear beside each connection form in wp-admin.<\/p><\/dd>\n<dt id=\"what%20wp-config.php%20constants%20does%20smtppai%20support%3F\"><h3>What wp-config.php constants does SMTPPai support?<\/h3><\/dt>\n<dd><p>MAILPAI_SMTP_SES_*, <code>MAILPAI_SMTP_HOST<\/code>, <code>MAILPAI_SMTP_USER<\/code>, <code>MAILPAI_SMTP_PASSWORD<\/code>, <code>MAILPAI_SMTP_API_KEY<\/code>, <code>MAILPAI_SMTP_API_SECRET<\/code>, and <code>MAILPAI_SMTP_OAUTH_REFRESH<\/code> (see connection form snippets).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Free WordPress SMTP with native API mailers, unlimited connections, per-route routing, backup failover, and an email log\u2014no paid tier required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/333140","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=333140"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dewan-shahedur-rahman"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=333140"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=333140"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=333140"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=333140"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=333140"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=333140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}