Products.EasyNewsletter
Powerful newsletter/mailing product for Plone.
Products.EasyNewsletter
EasyNewsletter is a simple but powerful newsletter/mailing add-on for Plone.
Features
- Plain text and HTML newsletters (including images)
- Manual written newsletters/mailings
- Automatic Plonish newsletters/mailings: Utilize Plone's Collections to collect content
- Send out daily/weekly/monthly issues automatically, based on collections (by cron or clock-server)
- Flexible templates for Collections, to generate newsletter content
- TTW customizable output template to generate HTML newsletters
- Personalized emails
- Subscribing/unsubscribing
- Import/export subscribers via CSV
- Use Plone Members/Groups as receivers (works also with Membrane)
- External subscriber filtering/manipulation with plugins (filter out or add more subscribers)
Requirements
- Python 3.10+
- Plone 6.1.1
Installation
Install dependencies using uv:
uv sync --extra dev
Running
Start the Plone instance:
invoke start
Or run directly:
runwsgi instance/etc/zope.ini
The initial admin user is configured in instance/inituser (default: admin/admin).
Development
Running Tests
uv run pytest
Tasks
Use invoke for common tasks:
uv run invoke --list
Releasing
The project uses zest.releaser for releases. The build backend is hatchling — no setup.py is needed.
To do a full release:
uv run fullrelease
This will:
- Update the version in
pyproject.toml - Update
CHANGELOG.md - Tag the release in git
- Build an sdist and wheel
- Upload to PyPI via twine
Release configuration is in pyproject.toml under [tool.zest-releaser].
Documentation
For more documentation please visit: http://productseasynewsletter.readthedocs.io
Known Issues
- If parts of the ENLIssue footer show up in the Plone footer, change the footer portlet view name from
footerto@@footer. This issue was fixed in Plone already, but you have to manually update this in an existing site.
Translations
Please help us to improve translations with Weblate: https://hosted.weblate.org/engage/products-easynewsletter/
Source Code
https://github.com/collective/Products.EasyNewsletter
Bug Tracker
https://github.com/collective/Products.EasyNewsletter/issues
ToDo
Funding welcome ;)
- Async task queue for Plone > 5.2, as an alternative to collective.taskqueue which will not support WSGI
- Integration of Mosaico newsletter editor
- External subscriber sources / delivery services
- convert robot tests with playwright based E2E tests
Maintainer
- Maik Derstappen [MrTango] md@derico.de - https://derico.de
Contributors
- Kai Dieffenbach: initial release
- Andreas Jung
- Dinu Gherman
- Jens W. Klein
- Peter Holzer
- Philip Bauer
- Thomas Massman [tmassmann]
- Timo Stollenwerk
License
GPL-2.0-or-later