GoodNews Icon


By Martin Gartner (gadgetto)

GoodNews first screenshot

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

Martin Gartner

New in GoodNews 1.5.1-pl2

[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, ipactivated) 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 LOGLEVELWARN 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 tvsbelowcontent 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 mailingmeta 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 mailingmeta)

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 workerprocessactive == true by default)

GoodNews 1.1.4-pl (2014-07-20)

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

- added contentblocksreplacement class to make GoodNews compatible with ContentBlocks 1.1

GoodNews 1.1.3-pl (2014-07-17)

- removed versioncompare 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



July 26, 2018
Supported Versions
2.2 – Current

Previous Versions

July 26, 2018
2.2 – Current
July 23, 2018
2.2 – Current
February 16, 2018
2.2 – Current
December 13, 2017
2.2 – Current
December 12, 2017
2.2 – Current
July 25, 2017
2.2 – Current

More from Martin Gartner

User Import

An extra to easily import users into the MODX user database and…