Cybexsoft SMTP

Beskrivelse

WordPress sends mail with PHP’s mail() function by default, which many hosts throttle or block outright — so the message never arrives and nothing on the site says so.

This plugin replaces that transport and then keeps working after the swap, which is the part most setups leave out:

  • Several mailers at once, with roles. Add as many as you like and say which one sends. Pro adds a backup that takes over automatically when the primary starts refusing mail.
  • Nothing is silently lost. A send that fails is held and retried on a widening schedule instead of disappearing, and sending pauses while a mailer is plainly broken rather than throwing every message at it.
  • A connection trace, step by step. Watch the handshake with your mail server or API key and see exactly which step fails, instead of reading «could not send».
  • Deliverability diagnostics that tell you what to publish. SPF, DKIM and DMARC checked against your sending domain, with the record found, what it means, and the exact change to make.

New in 1.1

  • Failure alerts in Slack or your own webhook, with an all-clear once mail goes out again
  • Sending limits per mailer, so a provider’s hourly or daily cap delays mail instead of refusing it
  • A dashboard widget, multisite network settings, SparkPost, an optional log preview with one-click retry, WP-CLI commands and a read-only REST API
  • In Pro: routing rules that send some mail through a different mailer, and Mandrill and SMTP.com

Free features

  • Mailers: generic SMTP, Amazon SES (via SMTP), SendGrid, Mailgun, Brevo, SMTP2GO, SparkPost (US or EU), or default PHP mail — set up as many as you like and choose which one sends
  • Email log with search, status filter, and CSV export — kept indefinitely, and showing which plugin or theme sent each message, with an optional short text preview and one-click retry of failed mail
  • Held mail: a message whose send fails is kept and retried on a widening schedule instead of being lost
  • Sending limits per mailer (a minute, an hour, a day), with ready-made figures for the SES sandbox, Gmail and shared hosting: mail past a limit waits in the queue instead of being refused
  • A WordPress dashboard widget: whether mail is going out, the last 7 days sent and failed, and anything waiting
  • Multisite: set the mailer once in Network Admin for every site, let sites choose their own if you like, and see each site’s sending and email log from one screen
  • Domain diagnostics: SPF, DKIM and DMARC record checks
  • Send test emails and trace the connection to your mailer step by step, with a rolling debug log for failures
  • Force-from controls so other plugins can’t silently change your From address
  • Allow & block lists: never email a blocked address or domain again
  • Failure alerts: an email to you once sending starts failing, at a threshold you set — and to Slack or a webhook of your own, with an all-clear when sending works again
  • Credentials encrypted at rest, or supplied from wp-config.php and kept out of the database entirely
  • A read-only REST API for your own dashboards: sending stats and the email log, for administrators signing in with an application password
  • WP-CLI commands for status, test email, the retry queue, the email log, DNS checks, settings export/import and the access lists — each exits non-zero when something is wrong, for monitoring

Cybexsoft SMTP Pro is a companion plugin you install alongside this one. It adds its features to the same settings screen, so there is still only one place to configure anything. It is free during early access: ask us and we will email you the download and a license key. It adds:

  • Open & click tracking
  • Automatic blocking of addresses that keep bouncing, and an allow-list-only mode that stops a staging site emailing real customers
  • Backup mailer with automatic failover
  • Richer failure alerts: several recipients, your own counting window and quiet period, any number of alert channels including Microsoft Teams and Discord, and no alarm for a message the backup mailer already rescued
  • Postmark, Resend, MailerSend, Mailjet, Elastic Email, Zoho ZeptoMail, Mandrill and SMTP.com mailers, plus Gmail & Outlook over OAuth
  • Automatic log pruning on a retention window you set, plus a full content archive
  • Weekly deliverability reports

External services

This plugin can connect to the external services listed below. Sending email
necessarily involves handing your message to a mail provider, so the mailer
you choose is the main one — but the plugin only ever talks to the provider
you configured, using credentials you supplied. Everything else here is
optional and off until you act.

The mailer you configure

The plugin sends your outgoing WordPress email through whichever mailer you
select under Settings. Six of the free mailers are third-party services of
their own: five HTTP APIs and Amazon SES. In each case what is sent is the
outgoing message — recipients, subject, body, attachments and headers —
together with the credential you configured, and only while that mailer is the
selected one:

  • SendGrid — sent to https://api.sendgrid.com. Service provided by
    Twilio SendGrid: terms of service,
    privacy policy.
  • Mailgun — sent to your configured Mailgun API host. Service provided by
    Mailgun: terms of service,
    privacy policy.
  • Brevo — sent to https://api.brevo.com. Service provided by Brevo:
    terms of service,
    privacy policy.
  • SMTP2GO — sent to https://api.smtp2go.com. Service provided by
    SMTP2GO: terms of service,
    privacy policy.
  • SparkPost — sent to https://api.sparkpost.com, or
    https://api.eu.sparkpost.com for an EU account. Service provided by
    Bird (SparkPost): terms of service,
    privacy policy.
  • Amazon SES — sent over SMTP to email-smtp.<region>.amazonaws.com, for
    the AWS region you select in the settings. What is sent is the outgoing
    message, authenticated with the SES SMTP username and password you
    configured, and only while Amazon SES is the selected mailer. Service
    provided by Amazon Web Services:
    service terms,
    privacy notice.

The remaining free mailers — generic SMTP and PHP mail — connect to the mail
server you name in the settings, not to a service of ours. The Tools tab’s
connection trace opens a connection to that same server and stops before any
message is sent.

For SendGrid and Mailgun, that same connection trace instead checks your key
against the provider without sending any message: it requests
https://api.sendgrid.com/v3/scopes with your API key, or
https://api.mailgun.net (or api.eu.mailgun.net on the EU region) with your
API key and the sending domain you configured. It runs only when you click it,
and nothing else about your site is sent.

Cybexsoft licence server

Used only once you have entered a Pro licence key under Cybexsoft SMTP License.

Your licence key, your site’s home URL, and the product and version being
licensed are sent to https://cybexsoft.com/api/licenses/verify when a key is
activated and periodically thereafter to confirm it is still valid, and to
https://cybexsoft.com/api/licenses/deactivate when a key is removed. Nothing
is sent while no licence key is stored, and the free plugin never contacts
these addresses at all — they are used only by the Pro add-on.

Service provided by Cybexsoft: terms of service,
privacy policy.

Alert channels (Slack, Microsoft Teams, Discord, your own webhook)

Used only if you add an alert channel on the failure-alert card in Settings.

When an alert goes out, when sending works again, and when you press «Send
test alert», the plugin posts a short JSON message to the webhook URL you
entered: your site’s name and address, what happened, how many messages
failed, the first error the mail server gave (which can include a recipient’s
email address), the mailer in use, the times, and a link to the email log.
Nothing is sent to any channel you have not set up, and nothing is sent
otherwise.

«Get Pro for Free» request form

Used only if you open that form and submit it.

The name, email address, website and message you type, are emailed to
admin@cybexsoft.com so we can send you the Pro download and a licence key. The
request is sent through this plugin’s own mailer — it is an ordinary email,
not a background call — and if your site cannot send mail yet, the form offers
to open the same request in your own email application instead.

Deactivation feedback

Used only if you choose a reason in the dialog shown when you deactivate the
plugin. The dialog can be skipped, and skipping it sends nothing; deactivation
proceeds either way.

If you do submit a reason, your site’s URL, the plugin version and build, the
mailer you had configured, the reason you picked and any note you wrote are
emailed to admin@cybexsoft.com.

showdns.net

The Deliverability tab links out to https://showdns.net, which runs the same
SPF, DKIM and DMARC checks from outside your server. The plugin makes no
request to it — nothing is sent unless you click the link, at which point your
browser visits it like any other site and the domain being checked appears in
the URL.

Service provided by Cybexsoft: privacy policy.

Skjermbilder

Installasjon

  1. Upload the cybexsoft-smtp folder to /wp-content/plugins/, or install the zip via Plugins Add New Upload Plugin.
  2. Activate the plugin.
  3. Go to Cybexsoft SMTP Settings and choose a mailer.
  4. Send a test email from the Tools tab to confirm everything works.

Ofte stilte spørsmål

Which PHP versions are supported?

PHP 7.4 through the latest stable release.

Does this store my SMTP password in plain text?

Not on any normal host. Passwords, API keys and OAuth tokens are encrypted before they are written to the database (XSalsa20-Poly1305 via PHP’s sodium extension), so a leaked database backup or an SQL injection in some other plugin does not expose working mail credentials. The key is derived from your site’s WordPress salts; if you rotate your salts on a schedule, define CYBEX_SMTP_ENCRYPTION_KEY in wp-config.php first so stored credentials survive the rotation.

Sodium has been compiled into PHP by default since 7.2, so it is present on every version this plugin supports. The one exception is a host that has deliberately built PHP without it — there is then nothing to encrypt with, and credentials are stored as you typed them. If that matters to you, ask your host whether sodium is enabled, or look for it in a phpinfo report.

Either way, you can keep a credential out of the database entirely by defining it in wp-config.php — CYBEX_SMTP_PASSWORD, CYBEX_SMTP_SES_PASSWORD, CYBEX_SMTP_SENDGRID_API_KEY, CYBEX_SMTP_MAILGUN_API_KEY, CYBEX_SMTP_BREVO_API_KEY, CYBEX_SMTP_SMTP2GO_API_KEY or CYBEX_SMTP_SPARKPOST_API_KEY. A defined constant overrides whatever is stored, and is never written back to the database.

If sodium is missing and a credential is stored anyway, the plugin now says so in the admin rather than leaving you to find out from this page.

How do I get Pro features?

Click Get Pro for Free in the plugin header (or next to Settings on the Plugins screen), fill in the short form, and we will email you the Pro download along with your license key.

The download is a separate plugin, Cybexsoft SMTP Pro, which you install alongside this one: Plugins Add New Upload Plugin, then activate. Keep Cybexsoft SMTP active — Pro extends it and will say so if it is missing. Your settings and email log stay exactly where they are, and everything Pro adds appears on the same settings screen, so there is still only one place to configure anything.

Will updating Cybexsoft SMTP remove my Pro features?

No. They are two separate plugins, so an update to this one cannot touch the other. Update either from the Plugins screen whenever you like.

It used to be a real risk, and this is why the two were separated. Pro was once shipped as this same plugin with the extra code included, which meant an update from WordPress.org replaced the whole directory and took the Pro code with it — leaving the license behind and the features gone. Nothing to watch out for now.

Where do I enter my Pro license key?

The License tab in Cybexsoft SMTP. Paste the key we emailed you there.

With the Pro plugin not yet installed the key is saved but shown as unverified, because nothing on this side can check one — activating Cybexsoft SMTP Pro verifies it.

The request form says it could not send. Now what?

The form sends its request through the very mailer this plugin configures, so a site that has not finished setting one up cannot email us either. When that happens the form offers a link that opens the same request in your own email app instead — nothing is lost.

My email log shows a «Blocked» row. What is that?

A message that was deliberately not sent, rather than one that failed. It appears when your block list stops a message before it reaches your mailer — the row records who it was for and which rule matched. Blocked rows are counted separately from failures and left out of your delivery rate, because nothing was ever handed to a mail server.

Can I run it from the command line?

Yes, with WP-CLI. wp cybexsoft-smtp status is the quick check, and wp help cybexsoft-smtp lists the rest: test email, the retry queue, the email log, DNS checks, settings export and import, and the access lists. Each command exits non-zero when something needs attention, so wp cybexsoft-smtp status can sit in a cron job or a monitoring check.

Can another system read my sending stats?

Yes, through a read-only REST API. GET /wp-json/cybexsoft-smtp/v1/stats returns totals, the accepted rate, daily counts, each mailer’s figures and the retry queue (?days= from 1 to 365); GET /wp-json/cybexsoft-smtp/v1/log returns the email log a page at a time (page, per_page up to 100, status, search, after), and /log/{id} a single entry. Nothing can be changed through it. It needs an administrator: create an application password under Users Profile and send it as HTTP Basic auth over HTTPS.

Does it work on multisite?

Yes. Network-activate it and go to Network Admin Settings Cybexsoft SMTP to set one mailer for every site, with or without letting sites choose their own. Activated on single sites instead, each site is set up on its own as usual. Cybexsoft SMTP Pro’s mailers are set up per site.

Does the email log slow my site down?

One small row is written per message, on the request that sends it. The log is indexed on the columns the screens filter by, and Pro adds a retention window that prunes old rows nightly if you would rather not keep them forever.

Vurderinger

8. oktober, 2026
Excellent SMTP Plugin – Simple, Reliable & Powerful One of the easiest SMTP plugins for WordPress. It supports virtually any SMTP service — simply select the required option, enter your SMTP details, and you’re ready to go. Email setup is quick, straightforward, and hassle-free. Why I recommend it: Supports different SMTP services Easy setup — select, enter details & connect Improves WordPress email deliverability Secure SMTP authentication Helps prevent emails from going to spam Useful email testing/troubleshooting features Helpful email logs for checking delivery Lightweight and easy to manage Great for contact forms, WooCommerce & website notifications A must-have SMTP plugin for reliable WordPress emails. Highly recommended! ⭐⭐⭐⭐⭐
Les alle 2 vurderinger

Bidragsytere og utviklere

«Cybexsoft SMTP» er programvare med åpen kildekode. Følgende personer har bidratt til denne utvidelsen:

Bidragsytere

Endringslogg

1.1.0

  • New: routing rules in Cybexsoft SMTP Pro send some of your mail through a different mailer from the rest, chosen by From address, recipient domain, the plugin that sent it, or the subject. The email log shows which rule routed each message, and the test email on Tools can be sent «as if from» a plugin to check a rule. Without Pro the Settings tab shows the card locked.
  • New: alert channels. Failure alerts can also post to Slack or to a webhook of your own (JSON with the event, site, incident, count, first error and a link), with a «Send test alert» button. The channel is told even when the alert email cannot get out, and a second message says when sending works again: «going out again after 14 minutes, 23 held messages delivered». Cybexsoft SMTP Pro adds any number of channels, Microsoft Teams and Discord, and a quiet period for each.
  • New: WP-CLI commands. wp cybexsoft-smtp status shows the mailers, the queue, a sending hold and the last hour’s failures; test sends a test email; queue list|run|retry|flush, log list|export, diagnose <domain> (SPF, DKIM, DMARC), settings export|import (credentials only on request) and lists add|remove|list. With Cybexsoft SMTP Pro, also license status|activate|deactivate and report send. Every command exits non-zero when something is wrong, so it can run from a monitoring cron.
  • New: sending limits. Each mailer can have a limit per minute, per hour and per day (Edit on the mailer), with ready-made figures for the SES sandbox, Gmail and shared hosting. A message past the limit waits in the queue and goes out when the limit allows, so nothing is refused or lost; held mail being retried keeps to the same limits. Needs «Hold failed mail and retry» on.
  • New: a Cybexsoft SMTP widget on the WordPress dashboard, for administrators: whether mail is going out (or failing, held, or recovering, with a link), sent and failed for each of the last 7 days, and the number of messages waiting. Hide it from Screen Options like any other widget.
  • New: multisite network settings. Network-activated, the plugin adds Network Admin Settings Cybexsoft SMTP: choose the mailer, its credentials, sending limits and (optionally) a From address once for every site, and decide whether sites may use their own settings instead. Each site keeps its own email log, held mail, block list and alerts. A Sites view shows which settings each site uses, what it sent in the last 7 days and what is waiting, and any site’s email log a page at a time. Credentials from wp-config.php still win on every site. Off until you switch it on, so network activation changes nothing.
  • New: an optional short preview in the email log. Turn on «Keep a short preview» (Settings Email controls) and each message keeps its first 300 characters as plain text, shown when you open it from the log. Off by default. Links lose their query strings, so password-reset and login keys are never stored; turning it off deletes the previews already kept, and the personal-data export and eraser include them. Cybexsoft SMTP Pro still archives the whole message.
  • New: a failed message still waiting in the retry queue shows when it will be tried next under its status in the email log, with a button to try it again now.
  • New: SparkPost mailer, for US and EU accounts. With Cybexsoft SMTP Pro its delivery reports (delivered, delayed, bounced, spam complaint) reach the email log like the other providers’.
  • New: Mandrill (Mailchimp Transactional) and SMTP.com mailers in Cybexsoft SMTP Pro. Mandrill’s signed delivery reports are read too; SMTP.com’s are not yet, so its messages stay «Sent».
  • New: a read-only REST API for agencies’ dashboards: cybexsoft-smtp/v1/stats and cybexsoft-smtp/v1/log, for administrators signing in with an application password.
  • Fix: with SendGrid, Mailgun, Brevo or SMTP2GO as your mailer, a message the block list stopped or a sending hold kept back could still be sent. It now stays stopped.
  • Fix: on multisite, deleting a site now deletes its email log, queue and list tables too, and a site created after network activation gets its tables straight away.
  • Change: a message held for retry remembers which plugin sent it, so its log entry names the plugin instead of nothing.
  • Developers: new filter cybex_smtp/mailer_for_message picks the mailer for one message; the email log has a route column (database update 1.2).
  • Developers: new filters cybex_smtp/alerts/channels and cybex_smtp/alerts/payload, and the action cybex_smtp/alerts/resolved when an alerted incident is over. A webhook URL can come from the CYBEX_SMTP_ALERT_WEBHOOK_URL constant.
  • Developers: new filters cybex_smtp/settings/export and cybex_smtp/settings/imported, and actions cybex_smtp/settings/import and cybex_smtp/cli/register, for add-ons to carry their settings in the settings file and add commands.
  • Developers: new filters cybex_smtp/rate_limit/limits, cybex_smtp/rate_limit/presets and cybex_smtp/dashboard_widget/show, and the action cybex_smtp/rate_limit/deferred.
  • Developers: new filter cybex_smtp/log/preview; the email log has a preview column (database update 1.3).
  • Developers: new filters cybex_smtp/rest/stats and cybex_smtp/rest/log_entry; the SparkPost key can come from the CYBEX_SMTP_SPARKPOST_API_KEY constant.

1.0.7

  • New: the email log has delivery statuses — Delivered, Deferred, Bounced and Spam complaint — for messages your provider reports on after accepting them. Reports are received by Cybexsoft SMTP Pro’s delivery events, from Amazon SES, SendGrid, Mailgun, Brevo, SMTP2GO, Postmark, Resend, MailerSend, Mailjet, Elastic Email and ZeptoMail; the log filters for these statuses appear once there is mail to show.
  • Change: a message your provider accepted is now labelled «Sent» instead of «Delivered». Acceptance is all a send can confirm; «Delivered» is kept for mail the provider says reached the mailbox. The dashboard’s 30-day rate card now reads «Accepted».
  • Change: messages sent through SendGrid, Mailgun and Brevo carry their log token in the provider’s own tag field, so the provider’s reports can be matched to the right log entry.
  • Developers: two new hooks, cybex_smtp/dashboard/accepted_stat_after and the cybex_smtp/log/email_meta_after filter, for add-ons to show delivery information on the dashboard and in the message viewer.

1.0.6

  • New: a «Rate ★★★★★» link under the plugin’s description on the Plugins screen, and one line at the foot of the plugin’s own pages linking to the WordPress.org review form. No pop-ups or admin notices.

1.0.5

  • Fix: the dashboard’s deliverability score now counts what happened to your mail, not just your setup. A site whose DNS was correct but whose mailer refused most messages used to show 100/100 and «Looking good». Setup is now worth 60 points and the last 30 days of sending 40; failing mail, held mail or paused sending caps the score at 59, and the note under it names the most urgent problem first.
  • Fix: messages held while sending was paused were delivered from the queue but never appeared in the email log, so their opens and clicks had nowhere to show. They are now logged when they go out.
  • Fix: «Sender address rejected» (your own From address unknown to the mail server) was treated as the recipient’s fault: it was not retried and was left out of the deliverability score’s failure count.
  • Change: the dashboard’s stat cards say «Emails · 30d» with the delivered/failed split, and show «No mail in the previous 30 days» instead of a +100% trend when there is nothing to compare with.
  • Change: confirmations after a save or an action («Settings saved», «6 held messages were sent») now appear as a floating message in the corner that closes itself, instead of pushing the page down under the title. Hovering keeps it open. Without JavaScript they still show as normal notices.
  • Fix: a DMARC policy of p=none no longer asks you to «publish a DMARC record» — it says the policy only monitors.

1.0.4

  • New: the email log shows which plugin or theme sent each message (or «WordPress» for core mail such as password resets), under its subject and in the CSV export.
  • New: each message records the id your mail provider gave it — SendGrid, Mailgun, Brevo and SMTP2GO from their API response, Amazon SES and most SMTP servers from the server’s reply. It is in the CSV export, and searching the log for it finds the message, which helps when a provider’s support desk quotes one.
  • New: mail sent over SMTP or PHP mail() now goes out with a Message-ID the plugin can recognise, and a held message keeps the same one when it is retried. This is groundwork for bounce and complaint reports from your provider.
  • The email log table gains three columns; the update is applied automatically.

1.0.3

  • Fix: reloading the page after finishing the setup wizard no longer reopens it on «Test the connection».

1.0.2

  • Maintenance release. No functional changes.

1.0.1

  • Fix: the Plugins screen stopped with a fatal error (undefined constant KEEP_DATA_OPTION) when loading the deactivation dialog.

1.0.0

  • Initial release.
  • Connect a mailer: SMTP, Amazon SES, SendGrid, Mailgun, Brevo or SMTP2GO, with Postmark, Gmail, Outlook / Microsoft 365, Resend, MailerSend, Mailjet, Elastic Email and Zoho ZeptoMail in Pro. Add as many as you like and choose which one sends.
  • Email log: every message with its subject, recipient, status and date, searchable, filterable and exportable to CSV.
  • Held mail: a message whose send fails is kept and retried on a widening schedule instead of being lost, and sending pauses while a mailer is plainly broken rather than throwing every message at it.
  • Failure alerts by email, at a threshold you set.
  • Deliverability tab: SPF, DKIM and DMARC checks with the record that was found, what it means, and what to publish.
  • Access lists: stop mail to an address or domain before it reaches your mailer.
  • Credentials are encrypted at rest, or can be supplied from wp-config.php constants and kept out of the database entirely.
  • Personal-data exporter and eraser for the email log, the mail queue and the debug log.
  • Pro: a backup mailer that takes over a message the primary refused, and can be promoted to primary when the primary stops working; open and click tracking; archived message content with re-send; weekly reports; bounce handling; blocklist monitoring.