Title: Prime9AI Campaign Sender
Author: Prime9AI
Published: <strong>November 11, 2026</strong>
Last modified: November 11, 2026

---

Search plugins

![](https://ps.w.org/prime9ai-campaign-sender/assets/banner-772x250.png?rev=3795678)

![](https://ps.w.org/prime9ai-campaign-sender/assets/icon-256x256.png?rev=3795678)

# Prime9AI Campaign Sender

 By [Prime9AI](https://profiles.wordpress.org/rinkeshchandra/)

[Download](https://downloads.wordpress.org/plugin/prime9ai-campaign-sender.2.0.0.zip)

 * [Details](https://wordpress.org/plugins/prime9ai-campaign-sender/#description)
 * [Reviews](https://wordpress.org/plugins/prime9ai-campaign-sender/#reviews)
 *  [Installation](https://wordpress.org/plugins/prime9ai-campaign-sender/#installation)
 * [Development](https://wordpress.org/plugins/prime9ai-campaign-sender/#developers)

 [Support](https://wordpress.org/support/plugin/prime9ai-campaign-sender/)

## Description

Prime9AI Campaign Sender is a self-hosted campaign sender. It solves one specific
problem: sending a large list all at once is the fastest way to hit your mail provider’s
rate limits and get your domain blacklisted.

Instead, the plugin paces delivery. You choose a batch size and an interval, and
a WP-Cron job releases small groups of messages over minutes, hours or days, staying
under the limits your provider enforces.

Nothing is routed through a third-party sending service. Your list stays in your
database, and your mail goes out over your own SMTP credentials.

Everything in this plugin is free and fully functional, with no limits on subscribers
or campaigns.

#### Features

 * **Campaign management** — create, edit, duplicate and delete campaigns with a
   full WordPress rich text editor.
 * **Two sending modes** — Send Now, or Schedule for a specific date and time (timezone-
   aware).
 * **Slow sending engine** — configurable batch size, sending interval, and maximum
   execution time per cron run, with a processing lock so runs never overlap.
 * **SMTP profiles** — store several mail servers and switch the active one, with
   passwords encrypted at rest using AES-256-CBC.
 * **Test connection** — send a real test message before you trust a server with
   a campaign.
 * **CSV / TSV list import** — automatic email validation, de-duplication, and suppression
   filtering on import. Large lists are split into batches automatically.
 * **Open and click tracking** — signed tracking links, so analytics cannot be forged
   and the redirect cannot be abused.
 * **One-click unsubscribe** — token-verified, adds the address to the suppression
   list and immediately drops any queued messages for it.
 * **Suppression list** — manual entries, CSV import, automatic unsubscribes, and
   optional auto-suppression on bounce.
 * **Rate limiting** — an hourly cap per recipient domain and a daily ceiling, both
   set by you. Emails over a limit wait in the queue and go out when it allows.
 * **Retries and bounces** — temporary failures are retried five minutes apart, 
   up to the number of attempts you set. A recipient the mail server refuses outright
   is logged as a bounce and can be suppressed automatically.
 * **Validation before sending** — optional MX record checks and optional disposable-
   address blocking.
 * **GDPR controls** — a daily cleanup deletes analytics, bounce records, failed
   emails and debug logs older than your retention period, and an unsubscribe footer
   is added to any email without an unsubscribe link.
 * **Debug log viewer** — colour-coded, filterable, downloadable, and off by default.

A separate Pro plugin, sold at https://prime9ai.com/prime9ai-campaign-sender/, adds
recurring send windows, a campaign analytics screen and integration with other SMTP
plugins. The Pro Features screen shows what it adds, and panels on the relevant 
screens can be hidden. None of that code is included here.

#### A note on deliverability

This plugin gives you controls; the sending policy is yours. Warm up new sending
domains, respect per-domain limits, honour unsubscribes promptly, and only mail 
people who asked to hear from you.

### External services

This plugin does not connect to any service run by its author.

**Your SMTP server**

Campaign content, subject lines and recipient addresses are transmitted to whichever
SMTP server you configure in the plugin’s settings. That server is chosen and controlled
by you; the plugin has no default and contacts no mail server until you supply credentials.
Review your mail provider’s own terms and privacy policy.

### Privacy

Prime9AI Campaign Sender stores subscriber email addresses, unsubscribe records,
and open/click events in your site’s database. It does not send this data anywhere.

Open and click tracking records the recipient’s email address, the campaign, and
the clicked URL. Tracking can be disabled entirely under **Campaign Sender  Settings**.
A configurable data retention setting (90 days by default) deletes old analytics,
bounce records, failed emails and debug logs automatically once a day. Emails still
waiting to be sent and suppression entries are kept, so an unsubscribe is never 
forgotten.

## Screenshots

[⌊The dashboard: campaign progress, queue depth, average open rate and system status
at a glance.⌉⌊The dashboard: campaign progress, queue depth, average open rate and
system status at a glance.⌉[

The dashboard: campaign progress, queue depth, average open rate and system status
at a glance.

[⌊The campaign editor, with list assignment, shortcodes, send-mode options and per-
campaign analytics.⌉⌊The campaign editor, with list assignment, shortcodes, send-
mode options and per-campaign analytics.⌉[

The campaign editor, with list assignment, shortcodes, send-mode options and per-
campaign analytics.

[⌊SMTP settings, with your saved profiles and a test-connection button before you
trust a server with a campaign.⌉⌊SMTP settings, with your saved profiles and a test-
connection button before you trust a server with a campaign.⌉[

SMTP settings, with your saved profiles and a test-connection button before you 
trust a server with a campaign.

[⌊Uploading an email list, showing the accepted formats and the validation applied
on import.⌉⌊Uploading an email list, showing the accepted formats and the validation
applied on import.⌉[

Uploading an email list, showing the accepted formats and the validation applied
on import.

[⌊The suppression list, with reasons, CSV import and manual entry.⌉⌊The suppression
list, with reasons, CSV import and manual entry.⌉[

The suppression list, with reasons, CSV import and manual entry.

[⌊Sending settings: batch size, interval, rate limits, validation and GDPR data 
retention.⌉⌊Sending settings: batch size, interval, rate limits, validation and 
GDPR data retention.⌉[

Sending settings: batch size, interval, rate limits, validation and GDPR data retention.

## Installation

 1. In your WordPress admin, go to **Plugins  Add New**, search for Prime9AI Campaign
    Sender, then install and activate it.
 2. Go to **Campaign Sender  SMTP Settings** and add your mail server as a profile.
    Use **Test Connection** to confirm it works.
 3. Go to **Campaign Sender  Email Lists** and upload a CSV or TSV file of addresses.
 4. Go to **Campaign Sender  Campaigns  Add New**, write your message, assign one or
    more lists, and pick a send mode.
 5. Check **Campaign Sender  Settings** to set your batch size and interval before 
    starting the campaign.

## FAQ

### Does this send email through a third-party service?

No. Campaigns go out over the SMTP server you configure. Prime9AI Campaign Sender
never routes your messages or your list through anyone else’s infrastructure.

### Does WP-Cron need to be enabled?

Yes. The sending queue is driven by WP-Cron. If you have set `DISABLE_WP_CRON` to
true, configure a real system cron that hits `wp-cron.php` at least once a minute,
otherwise campaigns will stall. Sites with little traffic should use a system cron
regardless, because WP-Cron only fires when someone visits the site.

### How many subscribers and campaigns can I have?

There is no limit in the plugin. The practical ceiling is your mail provider’s sending
limits and your server’s ability to run the cron job. Lists larger than 10,000 addresses
are automatically split into batches, and you can change that threshold in Settings.

### How do I avoid being marked as spam?

Set a conservative batch size and a generous interval, keep the per-domain cap low,
publish SPF, DKIM and DMARC records for your sending domain, and never import a 
list the recipients did not opt in to. New domains should start at a very low volume
and increase over days.

### Where are my uploaded lists stored?

As CSV files under `wp-content/uploads/prime9ai-campaign-sender/lists/`, with unguessable
filenames and server-level deny rules where the server supports them. They are never
exposed through a public URL.

### What happens when someone unsubscribes?

The address is added to the suppression list, and any messages still queued for 
that address are deleted immediately, so they will not receive the rest of the campaign.
Future imports skip suppressed addresses automatically.

### Is the plugin translation-ready?

Yes. All user-facing strings use the `prime9ai-campaign-sender` text domain, and
a POT file ships in `languages/` for translators.

### What happens when a sending limit is reached?

Nothing is lost. When the daily limit is reached, sending stops until midnight in
your site’s timezone. When a domain reaches its hourly limit, emails to that domain
wait for the next hour while other domains carry on. Set either limit to 0 to turn
it off.

### What counts as a bounce?

A recipient the mail server refuses with a permanent (5xx) error while the email
is being sent. Bounces reported later by email are not read. Sender problems, such
as a wrong SMTP password, are never counted as bounces.

### How is this different from an SMTP plugin?

SMTP plugins change how WordPress sends its own mail. This plugin is a campaign 
sender: it holds your lists, builds campaigns, and releases them gradually through
a queue so a large send does not hit your provider’s rate limits or damage your 
domain’s reputation.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Prime9AI Campaign Sender” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Prime9AI ](https://profiles.wordpress.org/rinkeshchandra/)

[Translate “Prime9AI Campaign Sender” into your language.](https://translate.wordpress.org/projects/wp-plugins/prime9ai-campaign-sender)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/prime9ai-campaign-sender/),
check out the [SVN repository](https://plugins.svn.wordpress.org/prime9ai-campaign-sender/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/prime9ai-campaign-sender/)
by [RSS](https://plugins.trac.wordpress.org/log/prime9ai-campaign-sender/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.0.0

 * First release on wordpress.org.

## Meta

 *  Version **2.0.0**
 *  Last updated **10 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [bulk email](https://wordpress.org/plugins/tags/bulk-email/)[campaign](https://wordpress.org/plugins/tags/campaign/)
   [Email Marketing](https://wordpress.org/plugins/tags/email-marketing/)[newsletter](https://wordpress.org/plugins/tags/newsletter/)
 *  [Advanced View](https://wordpress.org/plugins/prime9ai-campaign-sender/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/prime9ai-campaign-sender/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/prime9ai-campaign-sender/reviews/)

## Contributors

 *   [ Prime9AI ](https://profiles.wordpress.org/rinkeshchandra/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/prime9ai-campaign-sender/)