This product allows the complete management of a newsletter.
- Channel
- Totally customizable because it is possible to set a header, a footer and CSS styles. This fields allows to uniform template of email that will be sent from one channel.
- content type that inherit from folder content.
- Message
- content type that inherit from folder content.
The product provide a portlet and a tile for user subscribe.
Form for user subscribe have an email field and is protected for spam with collective.honeypot.
Allows complete management of user.
- Add user from admin setting
- Delete user from admin setting
- Import users directly from CSV file
- Export users directly to CSV file
- Delete a group of user directly from CSV file
- Subscribe users
- Unsubscribe users
By default, this product send all the emails through the standard plone mailer. The actual sending mechanism is handled by an adapter (a multi-adapter):
<adapter for="rer.newsletter.behaviors.ships.IShippableMarker zope.publisher.interfaces.browser.IBrowserRequest" provides=".base_adapter.IChannelSender" factory=".base_adapter.BaseAdapter" />
To change this default activity, you can create a new Plone add-on that
register a new adapter with a more specific layer (e.g. use the browser layer
of the new add-on) and override the sendMessage
method as you wish.
rer.newsletterplugin.flask is an example of plugin with a custom sender. It uses an external Flask app to send emails.
New permissions have been added for the management of the Newsletter:
rer.newsletter: Add Channel
rer.newsletter: Add Message
rer.newsletter: Manage Newsletter
rer.newsletter: Send Newsletter
This permission are assigned to Manager and Site Administrator. There is also
a new role, Gestore Newsletter
, which has permissions for all possible
operations on newsletter.
This product use collective.honeypot to prevent bot submissions.
You just need to set two environment variables:
- EXTRA_PROTECTED_ACTIONS customer-satisfaction-add
- HONEYPOT_FIELD xxx
xxx should be a field name that bot should compile.
If you get hacked, you could simply change that variable.
There is a view (@@delete_expired_users) that delete all users that not have confirmed subscription to a channel in time.
You can set subscription token validity from the product's control panel.
Inside the settings of the product there is a field that allows you to set validity time of the channel subscription token.
Install rer.newsletter by adding it to your buildout:
[buildout] ... eggs = rer.newsletter
and then running bin/buildout
This product has been tested on Plone 6 with volto integration.
Developed with the support of Regione Emilia Romagna;
Regione Emilia Romagna supports the PloneGov initiative.
This product was developed by RedTurtle Technology team.