26 lines
12 KiB
JSON
26 lines
12 KiB
JSON
{
|
|
"name": "Newsletter - SMTP (by ROBOTSTXT)",
|
|
"slug": "robotstxt-smtp-newsletter",
|
|
"version": "2.2.7",
|
|
"author": "ROBOTSTXT",
|
|
"homepage": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-newsletter",
|
|
"download_url": "https://git.robotstxt.es/ROBOTSTXT/robotstxt-smtp-newsletter/releases/download/2.2.7/robotstxt-smtp-newsletter-2.2.7.zip",
|
|
"requires": "4.7",
|
|
"tested": "6.9",
|
|
"requires_php": "7.2",
|
|
"last_updated": "2026-02-18",
|
|
"description": "Integrates ROBOTSTXT SMTP configuration with Newsletter plugin for reliable bulk email delivery with database-backed queue and external workers. Workers now run as continuous loops draining the full queue, with balanced distribution across parallel workers.",
|
|
"changelog": "<h4>2.2.7 - 2026-02-18</h4><ul><li><strong>Improved:</strong> Worker now runs as a continuous loop, draining the queue completely before exiting</li><li><strong>Improved:</strong> Statistics are synced after each batch</li><li><strong>Improved:</strong> Worker output includes worker ID on each line for clearer parallel logs</li><li><strong>Fixed:</strong> Uneven work distribution between parallel workers</li></ul><h4>2.2.6 - 2026-02-16</h4><ul><li><strong>CRITICAL:</strong> Worker now suppresses plugin header warnings in MultiSite environments</li><li><strong>CRITICAL:</strong> Fixed Newsletter base class dependencies not loading in DOING_CRON context</li><li><strong>CRITICAL:</strong> Worker now manually initializes plugin when newsletter_loaded hook doesn't fire</li><li><strong>CRITICAL:</strong> Fixed MultiSite subdirectory site detection - worker correctly loads site from --url path</li><li><strong>CRITICAL:</strong> Removed WP_CLI constant - caused fatal errors with multisite-clone-duplicator and similar plugins</li><li><strong>Fixed:</strong> Headers already sent warnings from Redirection plugin and other plugins during WordPress init</li><li><strong>Improved:</strong> Worker loads NewsletterAddon and NewsletterMailerAddon before plugin</li><li><strong>Improved:</strong> Worker calls Plugin::instance_init() manually for proper initialization</li><li><strong>Improved:</strong> REQUEST_URI parsed from URL path for correct MultiSite site selection</li><li><strong>Technical:</strong> Output buffering prevents header-related warnings from breaking worker execution</li></ul><h4>2.2.5 - 2026-02-16</h4><ul><li><strong>CRITICAL:</strong> Worker now loads plugin manually in DOING_CRON context</li><li><strong>Fixed:</strong> Newsletter SMTP plugin is not active error in worker script</li><li><strong>Improved:</strong> Worker compatibility with all WordPress environments including MultiSite</li><li><strong>Technical:</strong> Worker attempts to load plugin file directly if not already loaded via hooks</li></ul><h4>2.2.4 - 2026-02-16</h4><ul><li><strong>CRITICAL:</strong> Speed calculation now uses actual NEWSLETTER_CRON_INTERVAL value</li><li><strong>Fixed:</strong> Batch_size was being divided by 5 due to incorrect cron interval assumption</li><li><strong>Improved:</strong> Plugin now dynamically calculates speed based on actual Newsletter cron interval</li><li><strong>Technical:</strong> Loads Newsletter's cron.php to detect actual interval, supports any cron interval without hardcoded assumptions</li></ul><h4>2.2.3 - 2026-02-16</h4><ul><li><strong>CRITICAL:</strong> Overridden get_emails_per_run() to bypass Newsletter's internal calculation</li><li><strong>Fixed:</strong> Newsletter was calculating batch = speed / 12, resulting in only 8-16 emails per execution</li><li><strong>Fixed:</strong> Plugin now directly returns configured batch_size for proper queue loading</li><li><strong>Technical:</strong> Added get_emails_per_run() override in Plugin class</li></ul><h4>2.2.2 - 2026-02-16</h4><ul><li><strong>Fixed:</strong> Newsletter now correctly respects configured batch_size when enqueuing emails</li><li><strong>Fixed:</strong> Emails are now enqueued all at once to database instead of gradually</li><li><strong>Improved:</strong> Added public $batch property that Newsletter reads directly</li><li><strong>Improved:</strong> Added get_batch_size() method for Newsletter compatibility</li><li><strong>Technical:</strong> Mailers expose batch_size through multiple interfaces for Newsletter compatibility</li></ul><h4>2.2.1 - 2026-02-16</h4><ul><li><strong>Added:</strong> MultiSite detection in settings page with tailored worker commands</li><li><strong>Added:</strong> Worker script now supports --url parameter for MultiSite environments</li><li><strong>Improved:</strong> Settings page automatically displays installation-specific worker setup instructions</li><li><strong>Improved:</strong> Worker documentation with MultiSite usage examples</li><li><strong>Improved:</strong> README with dedicated MultiSite Installations section</li><li><strong>Technical:</strong> Worker script parses --url parameter and sets appropriate $_SERVER variables</li><li><strong>Technical:</strong> Settings page uses is_multisite() and get_site_url() for detection and URL generation</li></ul><h4>2.2.0 - 2026-02-16</h4><ul><li><strong>MAJOR:</strong> Database-backed email queue for persistent, reliable email delivery</li><li><strong>MAJOR:</strong> External CLI worker script for asynchronous email processing</li><li><strong>Added:</strong> Queue Status widget with real-time statistics (pending, processing, sent, failed)</li><li><strong>Added:</strong> Recent Campaigns section with key metrics in settings page</li><li><strong>Added:</strong> Email Queue admin page to view all queued and sent emails</li><li><strong>Added:</strong> Statistics admin page with campaign performance metrics</li><li><strong>Added:</strong> Parallel worker support for high-volume sending (10+ workers simultaneously)</li><li><strong>Added:</strong> Automatic retry with exponential backoff (up to 3 attempts: 5min → 15min → 30min)</li><li><strong>Added:</strong> Campaign statistics tracking (start time, duration, speed, success rate)</li><li><strong>Changed:</strong> Emails are now queued to database instead of sent immediately</li><li><strong>Changed:</strong> Settings page reorganized with Queue Status, Recent Campaigns, and Worker Configuration sections</li><li><strong>Changed:</strong> Campaign statistics now grouped by unique Newsletter ID instead of campaign name</li><li><strong>Removed:</strong> max_per_connection setting (no longer needed with worker architecture)</li><li><strong>Removed:</strong> Direct PHPMailer usage (replaced with wp_mail() in workers)</li><li><strong>Fixed:</strong> Duplicate campaign statistics for campaigns with same name but different IDs</li><li><strong>Fixed:</strong> Worker command documentation (corrected parallel worker syntax)</li><li><strong>BREAKING:</strong> Manual worker setup required - emails no longer send automatically</li><li><strong>BREAKING:</strong> System cron or process supervisor required for production use</li><li><strong>Technical:</strong> New database tables for queue and statistics with automatic creation on activation</li><li><strong>Technical:</strong> Microsecond precision timestamps for accurate performance metrics</li><li><strong>Security:</strong> CLI-only worker script with SQL injection prevention and capability checks</li></ul><h4>2.1.0 - 2026-02-09</h4><ul><li><strong>Changed:</strong> Uninstall behavior: plugin no longer performs cleanup on uninstall, all data cleanup is now handled by the core SMTP plugin</li><li><strong>Changed:</strong> This ensures Newsletter configuration is preserved when only the add-on is removed, and properly cleaned when the core plugin is uninstalled</li><li><strong>Technical:</strong> Simplified uninstall.php to delegate all cleanup responsibility to core SMTP plugin</li></ul><h4>2.0.1 - 2026-01-29</h4><ul><li><strong>Changed:</strong> Removed Network requirement from plugin headers to allow single-site activation</li></ul><h4>2.0.0 - 2026-01-29</h4><ul><li><strong>Changed:</strong> Updated compatibility with SMTP (by ROBOTSTXT) plugin 2.0.0</li><li><strong>Changed:</strong> Enhanced integration with core SMTP plugin security improvements</li><li><strong>Improved:</strong> Better error handling and validation</li></ul><h4>1.0.0 - 2026-01-29</h4><ul><li><strong>Added:</strong> Initial release with SMTPKeepAlive support</li><li><strong>Added:</strong> Amazon SES API integration for optimized delivery</li><li><strong>Performance:</strong> 20-30x faster bulk email sending compared to standard wp_mail()</li></ul>",
|
|
"sections": {
|
|
"description": "Integrates ROBOTSTXT SMTP configuration with Newsletter plugin for reliable bulk email delivery with database-backed queue and external workers. Workers now run as continuous loops draining the full queue, with balanced distribution across parallel workers.",
|
|
"changelog": "<h4>2.2.7 - 2026-02-18</h4><ul><li><strong>Improved:</strong> Worker now runs as a continuous loop, draining the queue completely</li><li><strong>Fixed:</strong> Uneven work distribution between parallel workers</li></ul><h4>2.2.6 - 2026-02-16</h4><ul><li><strong>CRITICAL:</strong> Fixed header warnings in MultiSite with Redirection plugin</li><li><strong>CRITICAL:</strong> Fixed Newsletter class dependencies in DOING_CRON context</li><li><strong>CRITICAL:</strong> Worker manually initializes plugin when hooks don't fire</li><li><strong>CRITICAL:</strong> Fixed MultiSite subdirectory site detection via --url path</li><li><strong>CRITICAL:</strong> Removed WP_CLI constant causing fatal errors with some plugins</li><li><strong>Improved:</strong> Output buffering prevents header warnings</li><li><strong>Improved:</strong> Worker loads NewsletterAddon and NewsletterMailerAddon</li><li><strong>Improved:</strong> REQUEST_URI parsed from URL for correct site selection</li></ul><h4>2.2.5 - 2026-02-16</h4><ul><li><strong>CRITICAL:</strong> Fixed worker plugin loading in DOING_CRON context</li><li><strong>Improved:</strong> Worker compatibility with MultiSite and all WordPress environments</li></ul><h4>2.2.4 - 2026-02-16</h4><ul><li><strong>CRITICAL:</strong> Fixed speed calculation for any Newsletter cron interval</li><li><strong>Fixed:</strong> Batch_size division issue resolved by dynamic interval detection</li></ul><h4>2.2.3 - 2026-02-16</h4><ul><li><strong>CRITICAL:</strong> Fixed Newsletter loading only 8-16 emails per execution</li><li><strong>Fixed:</strong> Overridden get_emails_per_run() to return configured batch_size directly</li></ul><h4>2.2.2 - 2026-02-16</h4><ul><li><strong>Fixed:</strong> Batch size enforcement - emails now enqueue correctly all at once</li><li><strong>Improved:</strong> Newsletter compatibility with $batch property and get_batch_size() method</li></ul><h4>2.2.1 - 2026-02-16</h4><ul><li><strong>Added:</strong> MultiSite detection with tailored worker commands</li><li><strong>Added:</strong> Worker --url parameter support for MultiSite</li><li><strong>Improved:</strong> Installation-specific worker setup instructions</li></ul><h4>2.2.0 - 2026-02-16</h4><ul><li><strong>MAJOR:</strong> Database-backed email queue for persistent, reliable email delivery</li><li><strong>MAJOR:</strong> External CLI worker script for asynchronous email processing</li><li><strong>Added:</strong> Queue Status widget with real-time statistics</li><li><strong>Added:</strong> Recent Campaigns section with key metrics</li><li><strong>Added:</strong> Email Queue admin page</li><li><strong>Added:</strong> Statistics admin page with campaign metrics</li><li><strong>Added:</strong> Parallel worker support (10+ workers)</li><li><strong>Added:</strong> Automatic retry with exponential backoff</li><li><strong>Changed:</strong> Emails queued to database instead of sent immediately</li><li><strong>Changed:</strong> Campaign statistics grouped by Newsletter ID</li><li><strong>Removed:</strong> max_per_connection setting</li><li><strong>Fixed:</strong> Duplicate campaign statistics</li><li><strong>BREAKING:</strong> Manual worker setup required</li></ul>"
|
|
},
|
|
"banners": {
|
|
"low": "",
|
|
"high": ""
|
|
},
|
|
"icons": {
|
|
"1x": "",
|
|
"2x": ""
|
|
}
|
|
}
|