Skip to main content

An add-on for Plone

Project description

rer.newsletter

python version ci

This product allows the complete management of a newsletter.

Features

New Content-type

  • 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.

Portlet and Tile

The product provide a portlet and a tile for user subscribe.

Form for user subscribe have two fields: email and reCaptcha, so do not forget to set key for reCaptcha fields. See plone.formwidget.recaptcha for more details.

User Management

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

Advanced Features

Customize how to send your newsletter

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.

Advanced security

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.

Subscriptions cleanup

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.

Installation

Install rer.newsletter by adding it to your buildout:

[buildout]

...

eggs =
    rer.newsletter

and then running bin/buildout

Dependencies

This product has been tested on Plone 5.1

Credits

Developed with the support of Regione Emilia Romagna;

Regione Emilia Romagna supports the PloneGov initiative.

Authors

This product was developed by RedTurtle Technology team.

RedTurtle Technology Site

Contributors

Changelog

1.1.2 (2022-05-12)

  • Improve error handling messages in massive user import. [cekk]

1.1.1 (2021-11-11)

  • Fix encoding in unsubscribe.py. [cekk]

1.1.0 (2021-06-10)

  • Use mail validator from portal_registration. [cekk]

1.0.7 (2021-01-28)

  • Fix logic in delete expired users view. [cekk]

1.0.6 (2020-12-18)

  • Handle “running” state in status table for long queues. [cekk]

1.0.5 (2020-11-25)

  • Fix upgrade step. [cekk]

1.0.4 (2020-11-12)

  • Fix encoding for the channel title. [daniele]

1.0.3 (2020-11-06)

  • Handle mail not found in subscribe form. [cekk]

1.0.2 (2020-08-18)

  • Styles for newsletter subscription modal

  • Fix cancel button moving when in error state [nzambello]

1.0.1 (2020-07-27)

  • Remove direct dependency to collective.taskqueue. [cekk]

1.0.0 (2020-07-21)

  • Heavy refactoring to support different send methods from adapters. [cekk]

0.4.0 (2020-04-21)

  • Fixed subscribers import in Python3. [daniele]

  • Fixed RichText behavior name in types definition. [daniele]

  • Fix initializedModal.js to correctly support tiles loading [nzambello]

0.3.0 (2020-03-07)

  • Python 3 compatibility. [cekk]

0.2.0 (2019-04-01)

  • Fix initializedModal.js to support new functionality in tilesmanagement: anonymous always load a static version of tiles list. [cekk]

0.1.12 (2019-01-30)

  • Added shippable collection.

  • Fixed template for shippable collection.

  • Fixed search object for channel history view. [eikichi18]

  • a11y: added role attribute for portalMessage [nzambello]

0.1.11 (2018-09-27)

  • Fix ascii encode problem on site name. [eikichi18]

0.1.10 (2018-09-27)

  • Added number of removed user on delete_expired_users view.

  • Removed layer for delete_expired_users view.

  • Fixed view for delete expired users. [eikichi18]

0.1.9 (2018-09-20)

  • Fixed modal timeout [eikichi18]

0.1.8 (2018-07-19)

  • Added Redis for asynchronous task

  • Fixed label of close button on subscription modal

  • Added Translatation

  • Fixed the way in which it takes the title of the site

  • Added content rules for user subscription and unsubscription [eikichi18]

0.1.7 (2018-06-19)

  • Fixed buildout [eikichi18]

0.1.6 (2018-06-19)

  • Fixed some minor label [eikichi18]

0.1.5 (2018-05-25)

  • fixed default profile in upgrade step [eikichi18]

0.1.4 (2018-05-23)

  • upgrade step to fix bundle for initializedModal.js [eikichi18]

0.1.3 (2018-05-23)

  • Fixed accessibility problem on subscribe/unsubscribe modal for IE. [eikichi18]

0.1.2 (2018-03-15)

  • Fixed accessibility and style for subscribe/unsubscribe modal. [eikichi18]

0.1.1 (2018-03-02)

  • Fixed doc. [eikichi18]

0.1.0 (2018-03-02)

  • Initial release. [eikichi18]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rer.newsletter-1.1.2.tar.gz (222.9 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page