1- ========================
2- Sending emails with Odoo
3- ========================
1+ =======================
2+ Send an email with Odoo
3+ =======================
44
5- Using your email domain in Odoo
6- ===============================
5+ Use an email domain in Odoo
6+ ===========================
77
8- Documents in Odoo (a CRM opportunity, a sales order, an invoice ... ) have a discussion thread,
9- called *chatter *.
8+ Documents in Odoo (such as a CRM opportunity, a sales order, an invoice, etc. ) have a discussion
9+ thread, called *chatter *.
1010
11- When you post a message in the chatter, this message is sent by email to the followers of the
12- document. If a follower replies to the message, the reply updates the chatter, and Odoo relays the
13- reply to the followers.
11+ When a database user posts a message in the chatter, this message is sent by email to the followers
12+ of the document. If a follower replies to the message, the reply updates the chatter, and Odoo
13+ relays the reply to the followers as a notification .
1414
15- Emails from your users to partners (customers, vendors) are sent from the email address of your
16- users. Similarly, emails from partners to users are sent from the email address of the partners.
17- This allows you to recognize at a glance who sent an email relayed by Odoo.
15+ Messages sent in the chatter from internal database users to external users (such as partners,
16+ customers, or vendors) are relayed on behalf of the database users. Messages sent back to the
17+ chatter from external users will appear in the chatter from their respective email addresses, or as
18+ they are listed in their Contacts record.
1819
19- If your database is hosted on our cloud (Odoo Online or Odoo.sh), it is not necessary to add an
20- outgoing email server to send emails from your custom domain. You can enjoy this feature by using
21- the default Odoo email server.
20+ If the Odoo database is hosted on the cloud (Odoo Online or Odoo.sh), it is not necessary to add an
21+ outgoing email server to send emails from a custom domain.
2222
2323.. important ::
2424 The Odoo server is subject to a daily email limit to prevent abuse. The default limit is 200
25- emails sent per day for databases with an Enterprise subscription. This limit can be increased
26- under certain conditions. See our :doc: `FAQ <faq >` or contact support for more
25+ emails sent per day for databases with an ** Enterprise ** subscription. This limit can be
26+ increased under certain conditions. See the :doc: `FAQ <faq >` or contact support for more
2727 information.
2828
29- However, it is recommended that you configure your domain name to ensure that emails from your
30- users reach your partners, rather than being considered spam .
29+ To ensure that emails sent to and from the chatter reach their intended contacts, instead of being
30+ considered spam, Odoo recommends configuring the domain name .
3131
32- For the same reason, we recommend that you always give your users an email address from a domain
33- you manage, rather than a generic email address (gmail.com, outlook.com, etc.).
32+ For the same reason, Odoo also recommends giving each database user an email address from the
33+ configured domain, rather than a generic email address domain (such as gmail.com, outlook.com,
34+ etc.).
3435
3536.. _email_communication/spf_compliant :
3637
3738Be SPF compliant
3839================
3940
4041The Sender Policy Framework (SPF) protocol allows the owner of a domain name to specify which
41- servers are allowed to send email from that domain. When a server receives an incoming email,
42- it checks whether the IP address of the sending server is on the list of allowed IPs according
43- to the SPF record of the sender .
42+ servers are allowed to send emails from that domain. When a server receives an incoming email,
43+ it checks if the IP address of the sending server is on the list of allowed IPs according to the
44+ sender's :abbr: ` SPF ( Sender Policy Framework ) ` record .
4445
4546.. note ::
46- The SPF verification is performed on the domain mentioned in the Return-Path field of the email.
47- In the case of an email sent by Odoo, this domain corresponds to the value of the
48- `mail.catchall.domain ` key in the database system parameters.
47+ The :abbr: ` SPF ( Sender Policy Framework ) ` verification is performed on the domain mentioned in
48+ the ` Return-Path ` field of the email. In the case of an email sent by Odoo, this domain
49+ corresponds to the value of the `mail.catchall.domain ` key in the database system parameters.
4950
5051 See the :ref: `documentation on incoming emails <email_communication/inbound_messages >`.
5152
52- The SPF policy of a domain is set using a TXT record. How to create or modify a TXT record depends
53- on the provider hosting the DNS zone of your domain name. In order for the verification to work
54- properly, each domain can only have one SPF record.
53+ The :abbr: `SPF ( Sender Policy Framework ) ` policy of a domain is set using a TXT record. The way to
54+ create or modify a TXT record depends on the provider hosting the :abbr: `DNS ( Domain Name System ) `
55+ zone of the domain name. In order for the verification to work properly, each domain can only have
56+ one :abbr: `SPF ( Sender Policy Framework ) ` record.
5557
56- If your domain name does not yet have an SPF record, the content of the record to create is as
57- follows:
58+ If the domain name does not yet have an :abbr: ` SPF ( Sender Policy Framework ) ` record, the content
59+ of the record to create it is as follows:
5860
59- `` v=spf1 include:_spf.odoo.com ~all ` `
61+ `v=spf1 include:_spf.odoo.com ~all `
6062
61- If your domain name already has an SPF record, you need to update this record (and do not create a
62- new one).
63+ If the domain name already has an :abbr: ` SPF ( Sender Policy Framework ) ` record, the record must be
64+ updated (and do not create a new one).
6365
6466.. example ::
6567
66- If your TXT record is `v=spf1 include:_spf.google.com ~all `, you need to edit it to add
68+ If the TXT record is `v=spf1 include:_spf.google.com ~all `, edit it to add
6769 `include:_spf.odoo.com `: `v=spf1 include:_spf.odoo.com include:_spf.google.com ~all `
6870
69- You can check if your SPF record is valid with a free tool like
70- ` MXToolbox SPF <https://mxtoolbox.com/spf.aspx >`_.
71+ Check if the :abbr: ` SPF ( Sender Policy Framework ) ` record is valid with a free tool like ` MXToolbox
72+ SPF <https://mxtoolbox.com/spf.aspx> `_.
7173
7274.. _email_communication/DKIM_compliant :
7375
7476Enable DKIM
7577===========
7678
77- The DomainKeys Identified Mail (DKIM) allows you to authenticate your emails with a digital signature.
79+ The DomainKeys Identified Mail (DKIM) allows a user to authenticate emails with a digital
80+ signature.
7881
79- When sending an email, the Odoo server includes a unique DKIM signature in the headers. The
80- recipient's server decrypts this signature using the DKIM record in your domain name. If the
81- signature and the key contained in the record match, this guarantees that your message is authentic
82- and has not been altered during transport.
82+ When sending an email, the Odoo server includes a unique :abbr: `DKIM ( DomainKeys Identified Mail ) `
83+ signature in the headers. The recipient's server decrypts this signature using the :abbr: `DKIM
84+ ( DomainKeys Identified Mail ) ` record in the database's domain name. If the signature and the key
85+ contained in the record match, this guarantees that the message is authentic and has not been
86+ altered during transport.
8387
84- To enable DKIM, you must add a CNAME record to the DNS zone of your domain name:
88+ To enable :abbr: `DKIM ( DomainKeys Identified Mail ) `, add a :abbr: `CNAME ( Canonical Name ) ` record to
89+ the :abbr: `DNS ( Domain Name System ) ` zone of the domain name:
8590
86- `` odoo._domainkey IN CNAME odoo._domainkey.odoo.com. ` `
91+ `odoo._domainkey IN CNAME odoo._domainkey.odoo.com. `
8792
8893.. tip ::
89- If your domain name is `mycompany.com `, you need to create a subdomain
94+ If the domain name is `mycompany.com `, make sure to create a subdomain
9095 `odoo._domainkey.mycompany.com ` whose canonical name is `odoo._domainkey.odoo.com. `.
9196
92- How to create or modify a CNAME record depends on the provider hosting the DNS zone of your domain
93- name. The most common providers are list below.
97+ The way to create or modify a :abbr: `CNAME ( Canonical Name ) ` record depends on the provider hosting
98+ the :abbr: `DNS ( Domain Name System ) ` zone of the domain name. The most common providers are
99+ :ref: `listed below <email_communication/SPFDKIM_common_providers >`.
94100
95- You can check if your DKIM record is valid with a free tool like
96- ` DKIM Core <https://dkimcore.org/tools/ >`_. If a selector is asked, enter `odoo `.
101+ Check if the :abbr: ` DKIM ( DomainKeys Identified Mail ) ` record is valid with a free tool like ` DKIM
102+ Core <https://dkimcore.org/tools/> `_. If a selector is asked, enter `odoo `.
97103
98- Check your DMARC policy
99- =======================
104+ Check the DMARC policy
105+ ======================
106+
107+ The Domain-based Message Authentication, Reporting, & Conformance (DMARC) record is a protocol that
108+ unifies :abbr: `SPF ( Sender Policy Framework ) ` and :abbr: `DKIM ( DomainKeys Identified Mail ) `. The
109+ instructions contained in the :abbr: `DMARC ( Domain-based Message Authentication, Reporting, &
110+ Conformance ) ` record of a domain name tell the destination server what to do with an incoming email
111+ that fails the :abbr: `SPF ( Sender Policy Framework ) ` and/or :abbr: `DKIM ( DomainKeys Identified
112+ Mail ) ` check.
100113
101- The Domain-based Message Authentication, Reporting & Conformance (DMARC) is a protocol that unifies SPF
102- and DKIM. The instructions contained in the DMARC record of a domain name tell the destination
103- server what to do with an incoming email that fails the SPF and/or DKIM check.
114+ There are three :abbr: `DMARC ( Domain-based Message Authentication, Reporting, & Conformance ) `
115+ policies:
104116
105- There are three DMARC policies:
106- - ``p=none ``
107- - ``p=quarantine ``
108- - ``p=reject ``
117+ - `p=none `
118+ - `p=quarantine `
119+ - `p=reject `
109120
110- ``p=quarantine `` and ``p=reject `` instruct the server that receives an email to quarantine that
111- email or ignore it if the SPF and/or DKIM check fails.
121+ `p=quarantine ` and `p=reject ` instruct the server that receives an email to quarantine that email
122+ or ignore it if the :abbr: `SPF ( Sender Policy Framework ) ` and/or :abbr: `DKIM ( DomainKeys Identified
123+ Mail ) ` check fails.
112124
113- If your domain name uses DMARC and has defined one of these policies, it is therefore imperative
114- to be SPF compliant or to enable DKIM.
125+ If the domain name uses :abbr: `DMARC ( Domain-based Message Authentication, Reporting, &
126+ Conformance ) ` and has defined one of these policies, the domain must be :abbr: `SPF ( Sender Policy
127+ Framework ) ` compliant or enable :abbr: `DKIM ( DomainKeys Identified Mail ) `.
115128
116129.. danger ::
117- Yahoo or AOL are examples of email providers with a DMARC policy set to ``p=reject ``. We
118- strongly advise against using an *@yahoo.com * or *@aol.com * address for your users. These emails
119- will never reach their recipient.
130+ Yahoo or AOL are examples of email providers with a :abbr: `DMARC ( Domain-based Message
131+ Authentication, Reporting, & Conformance ) ` policy set to `p=reject `. Odoo strongly advises
132+ against using an *@yahoo.com * or *@aol.com * address for the database users. These emails will
133+ never reach their recipient.
120134
121- ``p=none `` is used for the domain owner to receive reports about entities using their domain. It
122- should not impact the deliverability if the DMARC check fails.
135+ `p=none ` is used for the domain owner to receive reports about entities using their domain. It
136+ should not impact the deliverability if the :abbr: `DMARC ( Domain-based Message Authentication,
137+ Reporting, & Conformance ) ` check fails.
123138
124- You can check the DMARC record of a domain name with a tool like
125- `MXToolbox DMARC <https://mxtoolbox.com/DMARC.aspx >`_.
139+ Check the :abbr: ` DMARC ( Domain-based Message Authentication, Reporting, & Conformance ) ` record of a
140+ domain name with a tool like `MXToolbox DMARC <https://mxtoolbox.com/DMARC.aspx >`_.
126141
127- If one of your partners, customer or vendor, uses DMARC and has defined one of these policies, the
128- Odoo server cannot relay emails from this partner to your users.
142+ If a partner, customer, or vendor, uses :abbr: `DMARC ( Domain-based Message Authentication,
143+ Reporting, & Conformance ) ` and has defined one of these policies, the Odoo server cannot relay
144+ emails from this partner to the database users.
129145
130- You need to :ref: `handle user notifications in Odoo <discuss_app/notification_preferences >`, or replace the
131- email address of the partner with a default email address.
146+ To solve this issue, :ref: `handle user notifications in Odoo
147+ <discuss_app/notification_preferences>`, or replace the email address of the partner with a default
148+ email address.
132149
133150.. _email_communication/SPFDKIM_common_providers :
134151
@@ -140,24 +157,36 @@ SPF, DKIM & DMARC documentation of common providers
140157- `GoDaddy TXT record <https://www.godaddy.com/help/add-a-txt-record-19232 >`_
141158- `GoDaddy SPF <https://www.godaddy.com/help/add-an-spf-record-19218 >`_
142159- `GoDaddy DKIM <https://www.godaddy.com/help/add-a-cname-record-19236 >`_
143- - `NameCheap <https://www.namecheap.com/support/knowledgebase/article.aspx/317/2237/how-do-i-add-txtspfdkimdmarc-records-for-my-domain/ >`_
160+ - `NameCheap <https://www.namecheap.com/support/knowledgebase/article.aspx/317/2237/how-do-i-add-
161+ txtspfdkimdmarc-records-for-my-domain/> `_
144162- `CloudFlare DNS <https://support.cloudflare.com/hc/en-us/articles/360019093151 >`_
145163- `Google Domains <https://support.google.com/domains/answer/3290350?hl=en >`_
146164- `Azure DNS <https://docs.microsoft.com/en-us/azure/dns/dns-getstarted-portal >`_
147165
148- To fully test your configuration, the tool `Mail-Tester <https://www.mail-tester.com/ >`_ will give
149- you a full overview of the content and configuration you have in one email sent! Mail-Tester can
150- also be used for other lesser known providers.
166+ To fully test the configuration, use the `Mail-Tester <https://www.mail-tester.com/ >`_ tool, which
167+ gives a full overview of the content and configuration in one sent email. Mail-Tester can also be
168+ used for other, lesser- known providers.
151169
152170Use a default email address
153171===========================
154172
155- To force the email address from which emails are sent, you need to create the following key in
156- the System Parameters of the database:
173+ Access the :guilabel: `System Parameters ` by activating :ref: `developer mode <developer-mode >` and
174+ going to :menuselection: `Settings --> Technical --> Parameters --> System Parameters ` menu.
175+
176+ To force the email address from which emails are sent, a combination of the following keys needs to
177+ be set in the system parameters of the database:
178+
179+ - `mail.default.from `: accepts the local part or a complete email address as value
180+ - `mail.default.from_filter `: accepts a domain name or a full email address as value
181+
182+ .. note ::
183+ The `mail.default.from_filter ` works only for `odoo-bin ` configurations, otherwise this
184+ parameter can be set using the `from_filter ` field on `ir.mail_server `.
157185
158- - If `` mail.default.from `` is set, and contains a full email address, all outgoing emails are sent
159- from the given address. This is a requirement to use ` Outlook with Odoo
160- <https://docs.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365#option-1-authenticate-your-device-or-application-directly-with-a-microsoft-365-or-office-365-mailbox- and-send- mail-using-smtp-auth-client-submission> `_ .
186+ If the email address of the author does not match ` mail.default.from_filter `, the email address is
187+ replaced by ` mail.default. from` (if it contains a full email address) or a combination of
188+ ` mail.default.from ` and ` mail.catchall.domain ` .
161189
162- You access the **System Parameters ** in :ref: `developer mode <developer-mode >` in the :menuselection: `Settings -->
163- Technical --> Parameters --> System Parameters ` menu.
190+ If the `from_filter ` contains a full email address, and if the `mail.default.from ` is the same as
191+ this address, then all of the email addresses that are different from `mail.default.from ` will be
192+ encapsulated in `mail.default.from `.
0 commit comments