# Customizable unsubscription process on mass mailing emails

This addon extends the unsubscription form to let you:

- Choose which mailing lists are not cross-unsubscriptable when unsubscribing from a different one.
- Know why and when a contact has been subscribed or unsubscribed from a mass mailing.
- Provide proof on why you are sending mass mailings to a given contact, as required by the GDPR in Europe.
- Handle discrete unsubscriptions from other recipients that are not a mailing list. On standard module, unsubscriptions from these recipients directly include that mail on the general blacklist.

Table of contents

- Configuration
- Usage
- Known issues / Roadmap
- Bug Tracker
- Credits
  - Authors
  - Contributors
  - Maintainers

# Configuration

You can customize what reasons will be displayed to your unsubscriptors when they are going to unsubscribe. To do it:

1. Go to Email Marketing > Configuration > Unsubscription Reasons.
2. Create / edit / remove / sort as usual.
3. If Details required is enabled, they will have to fill a text area to continue.

For having discrete unsubscriptions from other recipients than the mailing lists, you need to add a glue module that adds 2 fields in the associated model:

- opt_out.
- Either email or email_from.

See mass_mailing_custom_unsubscribe_event for an example.

# Usage

Once configured:

1. Go to Email Marketing > Mailings > Create.
2. Edit your mass mailing at wish, but remember to add a snippet from Footers, so people have an Unsubscribe link.
3. Send it.
4. If somebody gets unsubscribed, you will see logs about that under Email Marketing > Unsubscriptions.

# Known issues / Roadmap

- This module replaces AJAX submission core implementation from the mailing list management form, because it is impossible to extend it. When this is fixed, this addon will need a refactoring (mostly removing duplicated functionality and depending on it instead of replacing it).

# Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

# Credits

## Authors

- Tecnativa

## Contributors

- Tecnativa:
  - Rafael Blasco
  - Antonio Espinosa
  - Jairo Llopis
  - David Vidal
  - Ernesto Tejeda
  - Pedro M. Baeza
  - Carlos Roca
  - Pilar Vargas

## Maintainers

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/social project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.