GoodNews 1.5.1-pl2

GoodNews 1.5.1-pl2

Released Jul 26, 2018 by gadgetto

GoodNews is a powerful integrated group and newsletter mailing system for the content management framework MODX Revolution. With GoodNews you can easily create mailings or newsletters and have them sent to your subscribers or internal MODX user groups automatically right from your MODX back-end. GoodNews is built with a lot of passion for details, a polished interface and easy operation. The sending process of GoodNews is lightning fast due to its underlying multithreaded sending system.

Download 631kb (295 downloads)
Downloads: 1,172
License: GPLv2
Requires Revolution 2.2.x or greater
Supports mysql

Feature Highlights

  • Easy mailing and newsletter creation: newsletter HTML body based on single MODX templates or plain-text.
  • Automatic Bounce Handling: GoodNews can automatically handle bouncing emails and disable or remove inactive subscribers.
  • Scheduled sending: send newsletters at a scheduled time.
  • Flexible groups and categories: manage your subscribers in highly flexible groups and/or categories of interests.
  • MODX context support: support of multiple MODX contexts and mailing containers within each context.
  • Ultrafast sending engine: ultrafast sending based on parallel sending processes (multi threaded!).
  • Multi language interface: GoodNews currently comes with this languages: English, German, French.
  • Preinstalled front-end resources: ready to use: 2-factor subscriptions based on interests, 1-click unsusbcription, editing of subscription profiles.
  • Content Collections: automatically insert pre-formatted lists of Resource documents into your mail body (e.g. list of news or products).
  • Mailings based on subscribers interests: send mailings based on group and/or categories selection.
  • Mailings to internal MODX User groups: Send mailings to internal MODX User groups.
  • Import of subscribers: CSV Import of subscribers and automatic groups/categories assignments.
  • Simultaneous sending: simultaneous sending of multiple mailing campaigns.
  • Unattended sending: start your sending jobs, close the browser window and let GoodNews do the rest.
  • GDPR compliant

Installation Instructions


  • GoodNews requires MODX 2.2.1 or later
  • PHP 5.3 (or later)
  • MODX running on MySQL database, MSSQL is currently not supported
  • PHP exec enabled on server for multi-threaded sending (optional but strongly recommended!)
  • PHP IMAP extension for automatic bounce handling (optional)
  • pThumb extension for automatic image resizing (optional)
  • A time-based job scheduler like CRON.

In some hosting plans and server environments, cron jobs are not available, prohibited or limited. But thankfully there are many web-based cron-job providers available with free or payed cron services. Here you can find a collection of web-based cron-job providers

[1.5.1-pl2] - 2018-07-26


  • Fixed icon in task scheduler status display

[1.5.0-pl] - 2018-07-23


  • General GDPR compliance release (1st-step)!
  • Added new GDPR fields (activatedon, ip_activated) to subscribers export
  • Implemented a flexible setup/initialization error handling
  • Added a CMP for error handling
  • [#60] Proper handling for "no GoodNews container available" situations
  • Proper handling for "access denied" situations
  • Make automatic inlining of CSS a setting (Gmail now supports embedded CSS, which removes the need for inline CSS in Gmail)
  • Added sample Privacy Policy and terms and Conditions resources to installer
  • [#61] Extended subscription process to also log activation IP + timestamp (GDPR compliance)


  • Newsletters grid initially loads with autorefresh enabled
  • Enhanced automatic multipart mail generation (plain-text part of mail is now perfectly formatted and respects full mail body)
  • Refactored preinstalled sample newsletter templates for simplicity and clean design
  • Refactored all email-template chunks (for subscription, profile and reports) for simplicity and clean design
  • Changed autorefresh and workerprocess-emergency-stop buttons from splitbutton to modern chebox toggle switches
  • First changes for better MODX 3 compatibility
  • Better UI for auto-refresh button
  • Better UI/UX for emergency stop of worker processes
  • Remastered the initialization process
  • [#63] Refactored all sample resource documents for GDPR compliance + fresh and clean HTML5


  • Fixed a problem with opening preview window for plain text mailings
  • Fixing a small bug in email template processing (sometimes closing tags were cropped)
  • Fixed flickering in groups and categories grid on tabchange (caused by forced refresh)
  • Finally fixing all collapse problems on grid refresh when rowExpander is enabled (thanks @Alroniks)
  • Fixed a problem where grid refresh doesn’t properly collapse expanded rows
  • Fixed a PHP warning in full URL conversion class
  • Fixed user related placeholders for subscription/activation email templates (now all placeholders from user object are provided)

GoodNews 1.4.8-pl (2017-02-16)

  • [#39] added subscribers export feature
  • refined subscribers grid display (more details, better differentiability)
  • [#6] added bulk actions to susbcribers grid
  • fixed a critical bug in subscriber authentication (as a result from a merge conflict)

GoodNews 1.4.7-pl2 (2017-12-13)

  • fixed edit icon in grid row in Settings -> Container grid

GoodNews 1.4.7-pl (2017-12-12)

  • added edit icon to grid row in Settings -> Container grid
  • [#56] fixed broken chunksPath in goodnewssubscription.class.php
  • fixed some typos in lexicons
  • [#57] exlude mailto links from link manipulation (_fullURLs method)
  • [#54] fixed typos in sample.GoodNewsSubscriptionBoxTpl Chunk
  • [#53] fixed typo in requestlinks.class.php
  • [#52] fixed typo in sample.GoodNewsContentCollectionRowTpl
  • [#51] fixed typos in LOG_LEVEL_WARN constant
  • send mail method now also respects mail port setting from MODX system settings
  • removed path and TV resolvers from setup process
  • fixed a problem in Registration/Subscription process where username wasn't checked before trying to create user
  • added feature to use GoodNewsUpdateProfile Snippet for logged in MODX users (not only via sid URL param)

GoodNews 1.4.6-pl (2017-03-10)

  • fixed a problem where Subscriber placeholders in newsletter templates were URL encoded before processing
  • fixed a PHP warning: Undefined variable: base
  • removed permission check for „Toggle send process“
  • removed grid flickering (grid mask) when auto-refresh is activated
  • fixed a problem where GoodNews groups which were assigned to MODX user groups couldn't be unassigned

GoodNews 1.4.5-pl (2017-02-19)

  • exclude blocked MODX users from recipients collection
  • fixed a problem in Subscription controller when &usernameField property is set
  • [#43] complete rewrite of automatic full URL conversion (now respects #anchor links external links and protocol-relative URLs)
  • fixed errors in package uninstall process
  • refined Package installer and uninstaller to output more usefull informations
  • added setup options to package installer to enable/disable installation of sample Resource documents
  • added system setting to enable/disable automatic URL conversion in email body
  • fixed "Created by" dropdown username display in mailing editor
  • "Save" button in mailing editor has now MODX primary button color
  • fixed a problem where selecting Collection rows didn't fire a resource form change ("Save" button wasn't activated)
  • [#17] added newsletter send-log viewer and log-file export to CSV
  • changed row expander icons for newsletter and subscribers grid to make it clear that rows can be expanded
  • fixed issues with array fields in GoodNewsUpdateProfile snippet (fix by @Jako taken from Register snippet/Login package)
  • removed superfluous default 'isset' parameter from getProperty calls (fix by @Jako taken from Register snippet/Login package)
  • fixed a very stupid and old bug in lock-file handling
  • mail subjects are now converted to charset of mailing (contributed by @mindeffects)
  • fixed a missing index log entry in cron.php
  • fixed a problem (since MODX 2.5.2) in goodnews.class.php constructor when executed in CLI mode
  • fixed issues with array fields in GoodNewsSubscription snippet (fix by @Jako taken from Register snippet/Login package)

GoodNews 1.4.2-pl (2016-10-29)

  • fixed subscriber "Created on" problem (conflicting field names since MODX 1.5.x users have an explicit createdon field)
  • fixed emptying cachepwd field when subscription is confirmed
  • fixed sending activation email if activationEmail property is not set
  • fixed a problem with detecting extended fields in form
  • fixed Custom Resource Properties Resolver in GoodNews container installation (unsubscribeResource and profileResource properties)
  • fixed template assignement for sample resources on package upgrade
  • corrected poor thinking in registration-confirm resource

GoodNews 1.4.1-pl (2016-03-02)

  • Added all missing custom validators from Login extra
  • Added snippets, resources and chunks to allow full MODX user registration including newsletter subscription on a single page
  • Even more refined subscription process
  • Missing snippet params dont break Subscription, RequestLinks and ConfirmSubscription snippets any longer
  • [#40] newsletter templates now have full access to all modUserProfile and GoodNewsSubscriberMeta fields as placeholders
  • fixed a bug with tvs_below_content setting in Mailing editor
  • [#3] send a status email to newsletter sender if mailing status changes
  • renamed preinstalled Resource domcuments to prevent overwriting of existing
  • preinstalled Resource documents aren't moved to tree root on package update (Installer)
  • [#38] fixed a php warning in processhandler class


GoodNews 1.4.0-pl (2015-11-05)

- completely revised the Subscriber registration system (front-end)

- new professional system mail templates (activation, success, request links, etc.)

- fixed a few nasty bugs in Susbcriber registration

- [#22] enable subscription of users which already have an account in the MODX instance

- [#21] enable re-subscription of users with cancelled or forgotten subscriptions

- fixed security/privacy problems (now front-end forms will never tell if email addresses already exists)

GoodNews 1.3.9-pl (2015-10-23)

- improved robustness of mail processing

- fixed a nasty bug with lockfile handling + recipient status update

- fixed error messages in GoodNews installer while updating database schema (...field allready exists)

- added "public" field to Groups (same behaviour as in Categories)

- changed behaviour of "public" field for Categories and makes it possible to send newsletters to non-public Categories

GoodNews 1.3.8-pl (2015-09-13)

- fixed a bug in combining filters on Subscribers grid

- [#34] added Category filter to Subscribers grid

- added Activated filter to Subscribers grid

- added plugin version and icons to action-toolbar

- reordered newsletter grid context menu (now it should be more logical)

- removed/disabled Delete action (menu and button) from mailing when sending is in progress 

- added action buttons to newsletters grid

- [#35] fixed a problem with send counter when timed out mails are detected

- the Mail Summary field is now able to grow in it's height when text is entered

- small graphical fixes

- refined some lexicon strings

GoodNews 1.3.7-pl (2015-06-29)

- fixed a PHP warning in MODX error log

- added preset for Mandrill SMTP service settings

- added feature to let each container have it's own SMTP settings (overrides MODX system settings)

- added feature to let each container have it's own mail charset and mail encoding settings (overrides MODX system settings)

GoodNews 1.3.6-pl (2015-03-29)

- added French translation (thank's Julien Studer!)

- fixed missing english strings + small typo in lexicon

- fixed a bug when sorting the Subscribers grid by subscription date

- added indicator in mailing editor if mailing is in read-only mode (sending already started)

- fixed waring message when mailing resource is in read-only mode

- fixed some PHP warnings if collections field of mailing_meta is empty (happens for resources prior to version 1.3.0-pl)

- [#33] Integrate functionality to auto-detect images and convert physical image dimensions based on src or style attributes

- fixed a problem in ContentCollection snippet when using tplWrapper

- removed ContentCollectionSnippet output if collection is empty

GoodNews 1.3.5-pl (2014-12-10)

- added ability to click on newsletter title to edit the newsletter

- added a switch above Newsletters grid to quickly activate/deactivate send-processes

- [#32] Add back an indicator for displaying if sending processes are activated/deactivated in settings

- fixed a problem in System settings when Admin or Editor group names have leading or trailing spaces

- fixed a bug with slider value displays in GoodNews - System settings

- [#30] added indicator in GoodNews - System Checks for requirement of PHP versions > 5.3.0

- fixed a bug in resource rendering (this was a tricky one!)

GoodNews 1.3.4-pl (2014-12-03)

- fixed a problem where Resource Collections aren't restored correctly from database

- added container filter dropdown in Resource Collections grid (better user experience)

- removed grouping by container in Resource Collections grid

- added PHP 5.3 (or later) requirement to readme.txt

- again fixed another small bug in how cron security keys are checked :)

- fixed a problem where Resource Collections are empty on first load (no Collections array available in mailing_meta)

GoodNews 1.3.3-pl (2014-11-16)

- fixed an issue with checkboxes causing text-parsing problems when using the "required" validator

- [#5] Render warning message to GoodNews forms if Snippets are mis-configured

- fixed a few PHP warnings in goodnewssubscriptioncontroller.class.php

- when updating the subscription profile: update form fields with new values when reloadOnSuccess = false

- [#29] Frontend: groups checkboxes output is falsely rendered inside html form fieldset for each single group

- [#28] Frontend: Subscription snippet - crashes during validation if email field is empty

- improved username creation in Subscriber Importer (we now use the userid part of the email address)

GoodNews 1.3.2-pl (2014-11-01)

- [#27] Subscriber meta data not created for existing MODX users when using the "Import Update Feature"

- [#26] Editing a GoodNews Container - mailing templates category dropdown doesn't list all Categories

- small lexicon adjustments to better match MODX 2.3

GoodNews 1.3.1-pl (2014-10-28)

- [#25] Extend Subscriber Importer to enable "Update" of existing subscribers

- fixed a bug in Import console window (console window is now destroyed after closing)

- fixed a bug in German lexicon file (missing semicolon could lead to white page -> sorry for this!)

- GoodNews management interface now takes account of MODX manager date and time format settings

- deleted mailing editor users are now recognized and it's id is now shown instead empty string

GoodNews 1.3.0-pl (2014-10-13)

- [#15] new feature: Content collector

GoodNews 1.2.2-pl (2014-09-15)

- some small cosmetical changes in forms

GoodNews 1.2.1-pl (2014-09-14)

- adapted searchfilter fields + reset buttons above grids to match MODX 2.3 style

- added debug-mode status to System Checks table

- [#24] fixed rendering of grids in tab panels (resizing problem)

- fixed some PHP warnings in getgroupcatnodes.class.php

- fixed some IMAP warnings in bounce handler

GoodNews 1.2.0-pl (2014-09-09)

- [#23] fixed PHP memory limit problem on server with huge list of subscribers

- complete rewrite on how the sending engine handles recipients!

- huge performance increase and much better memory management for sending engine

- many other small memory and performance related enhancements

- added sending error counter to mailing grid

GoodNews 1.1.7-pl (2014-09-02)

- [#20] new feature to manually disable multiprocessing

- fixed another small bug in how cron security keys are checked :)

- added error handler loading to cron.php and cron.worker.php (needed since MODX 2.3+)

GoodNews 1.1.6-pl (2014-08-24)

- [#19] new feature to request secure links via email

- security fix for subscribers getlist processor

- fixed wrong width of "Created By" combo field in mailing editor

- fileuploadfield extension only needs to be loaded in MODX < 2.3 (natively supported in MODX >= 2.3)

- removed custom form field description styles - using default MODx style

- added feature to manually reset bounce counters of a subscriber

- Cosmetical changes to Groups/Categories tree

- added row-expander to subscribers grid for detailed informations and save grid space

- moved  subscriber id to row epander

- moved  subscriber ip address to row epander

- small corrections/changes in lexicon strings

GoodNews 1.1.5-pl (2014-07-25)

- additional CSS fixes (because of last minute changes in Revo 2.3)

- small corrections/changes in lexicon strings

- changed Auto-Refresh toggle to ExtJs Cycle element for better UX

- other small cosmetical changes to match new Revo 2.3 manager skin

- removed Cron trigger status field (and make worker_process_active == true by default)

GoodNews 1.1.4-pl (2014-07-20)

- [#12] You have changes pending; are you sure you want to cancel?

- added contentblocks_replacement class to make GoodNews compatible with ContentBlocks 1.1

GoodNews 1.1.3-pl (2014-07-17)

- removed version_compare JS plugin and all it's references

- implemented a legacyMode flag for detecting older MODX versions (< 2.3)

GoodNews 1.1.2-pl (2014-07-14)

- fixed some installation issues (missing or wrong default settings, default container template)

- changed default bounce handling settings to more secure values

GoodNews 1.1.1-pl (2014-07-09)

- added SB + HB column to Subscribers grid

- fixed deleteSubscribers + updateSubscribers methods (also added groupmember and sudo check!)

GoodNews 1.1.0-pl (2014-07-09)

- added automatic bounce handling (parsing bounced emails and automatically handle subscriber status)

- moved all protected container settings into GoodNews system settings

- added system check for PHP Imap extension

- added auto-cleanup of susbcriptions (remove never activated accounts)

- added ID column to Subscribers grid

GoodNews 1.0.4-pl (2014-06-16)

- [#11] Compatibility problems with Revolution >= 2.3

GoodNews 1.0.3-pl (2014-06-10)

- [#10] cron.php cannot be called without the sid parameter when security key setting is disabled

- [#9] cron.worker.php throws a warning to the MODX error log (Invalid argument supplied for foreach())

GoodNews 1.0.2-pl (2014-06-08)

- [#7] Mailing: selection of subscribers in a category will erroneously also select the full group

GoodNews 1.0.1-pl

- added feature/properties to optionally send user an email after successful subscription

- added preinstalled Resource for successful subscriptions when activation isn't required

GoodNews 1.0.0-pl

- first stable release

GoodNews 1.0.0-beta3

- added subscribers ip tracking

- added subscription box chunk to place subscription form somewhere on site

- fixed missing security check if user is entitled to manage GoodNews container

GoodNews 1.0.0-beta2

- added necessary code to provide support for Revo version >= 2.3

- added Revo version detection for backwards compatibillity

- fixed a bug in multiprocessed sending (catch some rare race conditions)

GoodNews 1.0.0-beta1

- first public beta release

Version Released Author Downloads
7 Versions 1 Contributors 1,172 Downloads
1.5.1-pl Jul, 26 2018 gadgetto 18
1.5.0-pl Jul, 23 2018 gadgetto 53
1.4.8-pl Feb, 16 2018 gadgetto 279
1.4.7-pl2 Dec, 13 2017 gadgetto 184
1.4.7-pl Dec, 12 2017 gadgetto 62
1.4.6-pl Jul, 25 2017 gadgetto 281