| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/10.0/newsletter |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | Newsletter |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Therp BV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Therp BV |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Stéphane Bidoul (ACSONE) |
| WEBSITE | |
| WEBSITE | http://www.therp.nl |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:54 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_ckeditor4 odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend_newsletter |
assets_backend_newsletter | ir.ui.view | qweb | Inherits web.assets_backend |
email_template_preview_form |
email_template.preview.form | email_template.preview | form | New |
form_newsletter |
form.newsletter | newsletter.newsletter | form | New |
form_newsletter_type |
form.newsletter.type | newsletter.type | form | New |
No new fields.
Public methods (1)render_template_batch(self, cr, uid, template, model, res_ids, context=None, post_process=False)
may_send
Boolean
compute=_may_send_get
args: 'May send'
state
Selection
default='draft'
required=True
args: _state_selection, 'State'
subject
Char
required=True
args: 'Subject'
text_intro_html
Text
text_outro_html
Text
topic_ids
One2many → newsletter.topic
type_id
Many2one → newsletter.type
required=True
args: 'newsletter.type', 'Type'
action_preview(self)
action_send(self)
action_show_recipient_objects(self)
unlink(self)
newsletter_id
Many2one → newsletter.newsletter
text_html
Text
title
Char
No public methods.
domain
Char
required=True
args: 'Domain'
email_from
Char
required=True
args: 'From address'
email_template_id
Many2one → email.template
required=True
args: 'email.template', 'Email template'
group_ids
Many2many → res.groups
column1='newsletter_id'
column2='group_id'
help='The groups that may send this type of newsletter. Leave empty for all members of group Newsletter / Senders'
relation='newsletter_type_groups_rel'
string='Groups'
args: 'res.groups'
model
Many2one → ir.model
required=True
args: 'ir.model', 'Model'
name
Char
required=True
args: 'Name'
action_show_recipient_objects(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/9.0/newsletter |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | Newsletter |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Therp BV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Therp BV |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Stéphane Bidoul (ACSONE) |
| WEBSITE | |
| WEBSITE | http://www.therp.nl |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:15:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_ckeditor4 odoo/odoo: - web - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend_newsletter |
assets_backend_newsletter | ir.ui.view | qweb | Inherits web.assets_backend |
email_template_preview_form |
email_template.preview.form | email_template.preview | form | New |
form_newsletter |
form.newsletter | newsletter.newsletter | form | New |
form_newsletter_type |
form.newsletter.type | newsletter.type | form | New |
No new fields.
Public methods (1)render_template_batch(self, cr, uid, template, model, res_ids, context=None, post_process=False)
may_send
Boolean
compute=_may_send_get
args: 'May send'
state
Selection
default='draft'
required=True
args: _state_selection, 'State'
subject
Char
required=True
args: 'Subject'
text_intro_html
Text
text_outro_html
Text
topic_ids
One2many → newsletter.topic
type_id
Many2one → newsletter.type
required=True
args: 'newsletter.type', 'Type'
action_preview(self)
action_send(self)
action_show_recipient_objects(self)
unlink(self)
newsletter_id
Many2one → newsletter.newsletter
text_html
Text
title
Char
No public methods.
domain
Char
required=True
args: 'Domain'
email_from
Char
required=True
args: 'From address'
email_template_id
Many2one → email.template
required=True
args: 'email.template', 'Email template'
group_ids
Many2many → res.groups
column1='newsletter_id'
column2='group_id'
help='The groups that may send this type of newsletter. Leave empty for all members of group Newsletter / Senders'
relation='newsletter_type_groups_rel'
string='Groups'
args: 'res.groups'
model
Many2one → ir.model
required=True
args: 'ir.model', 'Model'
name
Char
required=True
args: 'Name'
action_show_recipient_objects(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/8.0/newsletter |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | Newsletter |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Therp BV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Therp BV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Holger Brunn, Pedro M. Baeza, Stéphane Bidoul (ACSONE), OCA Transbot, Maxime Chambreuil - http://www.savoirfairelinux.com, StefanRijnhart, oca-travis, Weblate, Rafael Blasco, oihane |
| WEBSITE | |
| WEBSITE | http://www.therp.nl |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_ckeditor4 odoo/odoo: - email_template - base - base_setup - web_kanban - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend_newsletter |
assets_backend_newsletter | ir.ui.view | qweb | Inherits web.assets_backend |
email_template_preview_form |
email_template.preview.form | email_template.preview | form | New |
form_newsletter |
form.newsletter | newsletter.newsletter | form | New |
form_newsletter_type |
form.newsletter.type | newsletter.type | form | New |
No new fields.
Public methods (1)render_template_batch(self, cr, uid, template, model, res_ids, context=None, post_process=False)
newsletter_test_recipient
Char
newsletter_test_send(self)
may_send
Boolean
compute=_may_send_get
args: 'May send'
state
Selection
default='draft'
required=True
args: _state_selection, 'State'
subject
Char
required=True
args: 'Subject'
text_intro_html
Text
text_outro_html
Text
topic_ids
One2many → newsletter.topic
type_id
Many2one → newsletter.type
required=True
args: 'newsletter.type', 'Type'
action_preview(self)
action_send(self)
action_show_recipient_objects(self)
unlink(self)
newsletter_id
Many2one → newsletter.newsletter
text_html
Text
title
Char
No public methods.
domain
Char
required=True
args: 'Domain'
email_from
Char
required=True
args: 'From address'
email_template_id
Many2one → email.template
required=True
args: 'email.template', 'Email template'
group_ids
Many2many → res.groups
column1='newsletter_id'
column2='group_id'
help='The groups that may send this type of newsletter. Leave empty for all members of group Newsletter / Senders'
relation='newsletter_type_groups_rel'
string='Groups'
args: 'res.groups'
model
Many2one → ir.model
required=True
args: 'ir.model', 'Model'
name
Char
required=True
args: 'Name'
action_show_recipient_objects(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/7.0/newsletter |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Newsletter |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Therp BV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Therp BV |
| COMMITTERS | |
| COMMITTERS | Alexandre Fayolle, Holger Brunn, Pedro M. Baeza |
| WEBSITE | |
| WEBSITE | http://www.therp.nl |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:07:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_ckeditor4 odoo/odoo: - email_template - base - base_setup - web_kanban - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
With this addon, you can send HTML-formatted mass emails to your customers.
While it was developed with primarily newsletters in mind, it works for
arbitrary objects and arbitrary content.
Preparations
------------
Under Sales/Configuration/Newsletter types, review the default one or create a
new one. You'll have to fill in a name, a model, a domain expression on that
model, an email template (have a look a the default newsletter type's email
template to see how this might look like) and the address that should show up
as the sender's address.
If you fill in a group in the type's groups-field, only users which are a
member of said group are allowed to send a newsletter of this type. See below
for details.
Finally, click 'Show recipient objects' to check the list of records that will
receive a newsletter of this type. We work with dynamic selections here, so
this list ist not fixed and will be evaluated every time you send a newsletter.
Usage
-----
After a newsletter type is configured, the handling is pretty straightworfard:
Go to Sales/Newsletters/Newsletters and create a new one. Choose the type you
configured before and fill in a subject.
Often, a template will be chosen that enforces a certain layout for different
subsections of your text. That's why the text is broken up into an intro, an
outro and topics with optional heading in between. This way, you can put most
of the layout into the template and leave only the interesting layout to your
users.
A note on images: If you upload an image via the editor, it will be embedded
as dataurl into the resulting email. This is good for your customers' privacy,
but bad for bandwidth, so take care to chose reasonable image sizes.
It is mandatory that you click on 'Preview' before you are allowed to finally
send the newsletter. The sending process uses OpenERP's standard email queue.
Security
--------
There are three groups defined:
newsletter editor
A user who can create a newsletter and add/edit topics
newsletter sender
A user who may send newsletters. Note that if a newsletter type is
restricted to certain groups, the user has to be a newsletter sender and
be a member of one of the groups given in the newsletter type
newsletter manager
A user who may edit newsletter types
Note that the groups are listed in order of inheritance, so a newsletter sender
always also is an editor and a manager is a sender as well as an editor.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
email_template_preview_form |
email_template.preview.form | email_template.preview | form | New |
form_newsletter |
form.newsletter | newsletter.newsletter | form | New |
form_newsletter_type |
form.newsletter.type | newsletter.type | form | New |
No new fields.
Public methods (1)render_template(self, cr, uid, template, model, res_id, context=None)
No new fields.
Public methods (1)render_template(self, cr, uid, template, model, res_id, context=None)
No new fields.
Public methods (5)action_preview(self, cr, uid, ids, context=None)
action_send(self, cr, uid, ids, context=None)
action_show_recipient_objects(self, cr, uid, ids, context=None)
on_change_type_id(self, cr, uid, ids, type_id, context=None)
unlink(self, cr, uid, ids, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)action_show_recipient_objects(self, cr, uid, ids, context=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/crm |
| GIT | |
| GIT | https://github.com/OCA/crm.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/crm/tree/6.1/newsletter |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Newsletter |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Therp BV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Therp BV |
| COMMITTERS | |
| COMMITTERS | Alexandre Fayolle, Holger Brunn |
| WEBSITE | |
| WEBSITE | http://www.therp.nl |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:04:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/web: - web_ckeditor4 odoo/odoo: - email_template - base - base_tools - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This addon provides the UI and mailing mechanisms for newsletters
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
email_template_preview_form |
email_template.preview.form | email_template.preview | form | New |
form_newsletter |
form.newsletter | newsletter.newsletter | form | New |
form_newsletter_type |
form.newsletter.type | newsletter.type | form | New |
No new fields.
Public methods (1)render_template(self, cr, uid, template, model, res_id, context=None)
No new fields.
Public methods (1)render_template(self, cr, uid, template, model, res_id, context=None)
No new fields.
Public methods (4)action_preview(self, cr, uid, ids, context=None)
action_send(self, cr, uid, ids, context=None)
action_show_recipient_objects(self, cr, uid, ids, context=None)
on_change_type_id(self, cr, uid, ids, type_id, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)action_show_recipient_objects(self, cr, uid, ids, context=None)