[IMP] Misc: Remove section from from-address
closes odoo/documentation#3812
X-original-commit: 9eb9fa7e19
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
@ -161,9 +161,9 @@ Then, create a new email server and check the box for :guilabel:`Outlook`. Next,
|
|||||||
:guilabel:`Name` (it can be anything) and the Microsoft Outlook email :guilabel:`Username`.
|
:guilabel:`Name` (it can be anything) and the Microsoft Outlook email :guilabel:`Username`.
|
||||||
|
|
||||||
If the :guilabel:`From Filter` field is empty, enter either a :ref:`domain or email address
|
If the :guilabel:`From Filter` field is empty, enter either a :ref:`domain or email address
|
||||||
<email_communication/default_from>`.
|
<email_communication/default>`.
|
||||||
|
|
||||||
Then, cick on :guilabel:`Connect your Outlook account`.
|
Then, click on :guilabel:`Connect your Outlook account`.
|
||||||
|
|
||||||
A new window from Microsoft opens to complete the :guilabel:`authorization process`. Select the
|
A new window from Microsoft opens to complete the :guilabel:`authorization process`. Select the
|
||||||
appropriate email address that is being configured in Odoo.
|
appropriate email address that is being configured in Odoo.
|
||||||
|
@ -201,7 +201,7 @@ Connection`.
|
|||||||
#. The :guilabel:`From Filter` needs to be set on the server configuration. It is recommended
|
#. The :guilabel:`From Filter` needs to be set on the server configuration. It is recommended
|
||||||
to set it as a domain and not a full email address. It should match the domain in the two
|
to set it as a domain and not a full email address. It should match the domain in the two
|
||||||
proceeding steps. More information can be referenced :ref:`here
|
proceeding steps. More information can be referenced :ref:`here
|
||||||
<email_servers/outgoing-email-server>`.
|
<email_communication/from_filter>`.
|
||||||
#. The :guilabel:`mail.default.from` system parameter must have the value
|
#. The :guilabel:`mail.default.from` system parameter must have the value
|
||||||
`notifications\@yourdomain.com`.
|
`notifications\@yourdomain.com`.
|
||||||
#. The :guilabel:`mail.default.from_filter` system parameter must have the value
|
#. The :guilabel:`mail.default.from_filter` system parameter must have the value
|
||||||
|
@ -1,37 +1,36 @@
|
|||||||
=======================
|
============================================
|
||||||
Send an email with Odoo
|
Configure DNS records to send emails in Odoo
|
||||||
=======================
|
============================================
|
||||||
|
|
||||||
Use an email domain in Odoo
|
SPAM labels overview
|
||||||
===========================
|
====================
|
||||||
|
|
||||||
Documents in Odoo (such as a CRM opportunity, a sales order, an invoice, etc.) have a discussion
|
Sometimes, emails from Odoo are misclassified by the different email providers and end up in spam
|
||||||
thread, called *chatter*.
|
folders. At the moment, some settings are out of Odoo's control, notably the way the different email
|
||||||
|
providers classify Odoo's emails according to their own restriction policy and/or limitations.
|
||||||
|
|
||||||
When a database user posts a message in the chatter, this message is sent by email to the followers
|
It is standard in Odoo that emails are received from ``"name of the author"
|
||||||
of the document. If a follower replies to the message, the reply updates the chatter, and Odoo
|
<notifications@mycompany.odoo.com>``. In other words this can be translated to: ``"name of the
|
||||||
relays the reply to the followers as a notification.
|
author" <{ICP.mail.from.filter}@{mail.catchall.domain}>``. In this case ICP stands for
|
||||||
|
`ir.config.parameters`, which are the System Parameters. Deliverability is greatly improved with the
|
||||||
|
:ref:`notifications configuration <email_servers/notifications>`.
|
||||||
|
|
||||||
Messages sent in the chatter from internal database users to external users (such as partners,
|
In order for servers to accept emails from Odoo on a more regular basis, one of the solutions is
|
||||||
customers, or vendors) are relayed on behalf of the database users. Messages sent back to the
|
for customers to create rules within their own mailbox. A filter can be added to the email inbox so
|
||||||
chatter from external users will appear in the chatter from their respective email addresses, or as
|
that when email is received from Odoo (`notifications@mycompany.odoo.com`) it is moved to the
|
||||||
they are listed in their Contacts record.
|
inbox. It is also possible to add the Odoo database domain onto a safe senders list or whitelist
|
||||||
|
on the receiving domain.
|
||||||
|
|
||||||
If the Odoo database is hosted on the cloud (Odoo Online or Odoo.sh), it is not necessary to add an
|
If an Odoo email server appears on a blacklist, notify Odoo via a `new help ticket
|
||||||
outgoing email server to send emails from a custom domain.
|
<https://www.odoo.com/help>`_ and the support team will work to get the servers removed from the
|
||||||
|
blacklist.
|
||||||
|
|
||||||
.. important::
|
Should the Odoo database be using a custom domain for sending emails from Odoo there are three
|
||||||
The Odoo server is subject to a daily email limit to prevent abuse. The default limit is 200
|
records that should be implemented on the custom domain's DNS to ensure deliverability of email.
|
||||||
emails sent per day for databases with an **Enterprise** subscription. This limit can be
|
This includes setting records for :abbr:`SPF (Sender Policy Framework)`,
|
||||||
increased under certain conditions. See the :doc:`FAQ <faq>` or contact support for more
|
:abbr:`DKIM (DomainKeys Identified Mail)` and
|
||||||
information.
|
:abbr:`DMARC (Domain-based Message Authentication, Reporting, & Conformance)`. Ultimately though,
|
||||||
|
it is up to the discretion of the final receiving mailbox.
|
||||||
To ensure that emails sent to and from the chatter reach their intended contacts, instead of being
|
|
||||||
considered spam, Odoo recommends configuring the domain name.
|
|
||||||
|
|
||||||
For the same reason, Odoo also recommends giving each database user an email address from the
|
|
||||||
configured domain, rather than a generic email address domain (such as gmail.com, outlook.com,
|
|
||||||
etc.).
|
|
||||||
|
|
||||||
.. _email_communication/spf_compliant:
|
.. _email_communication/spf_compliant:
|
||||||
|
|
||||||
@ -40,27 +39,23 @@ Be SPF compliant
|
|||||||
|
|
||||||
The Sender Policy Framework (SPF) protocol allows the owner of a domain name to specify which
|
The Sender Policy Framework (SPF) protocol allows the owner of a domain name to specify which
|
||||||
servers are allowed to send emails from that domain. When a server receives an incoming email,
|
servers are allowed to send emails from that domain. When a server receives an incoming email,
|
||||||
it checks if the IP address of the sending server is on the list of allowed IPs according to the
|
it checks whether the IP address of the sending server is on the list of allowed IPs according to
|
||||||
sender's :abbr:`SPF (Sender Policy Framework)` record.
|
the sender's :abbr:`SPF (Sender Policy Framework)` record.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The :abbr:`SPF (Sender Policy Framework)` verification is performed on the domain mentioned in
|
The :abbr:`SPF (Sender Policy Framework)` verification is performed on the domain mentioned in
|
||||||
the `Return-Path` field of the email. In the case of an email sent by Odoo, this domain
|
the `Return-Path` field of the email. In the case of an email sent by Odoo, this domain
|
||||||
corresponds to the value of the `mail.catchall.domain` key in the database system parameters.
|
corresponds to the value of the `mail.catchall.domain` key in the database system parameters.
|
||||||
|
|
||||||
See the :ref:`documentation on incoming emails <email_communication/inbound_messages>`.
|
|
||||||
|
|
||||||
The :abbr:`SPF (Sender Policy Framework)` policy of a domain is set using a TXT record. The way to
|
The :abbr:`SPF (Sender Policy Framework)` policy of a domain is set using a TXT record. The way to
|
||||||
create or modify a TXT record depends on the provider hosting the :abbr:`DNS (Domain Name System)`
|
create or modify a TXT record depends on the provider hosting the :abbr:`DNS (Domain Name System)`
|
||||||
zone of the domain name. In order for the verification to work properly, each domain can only have
|
zone of the domain name. In order for the verification to work properly, each domain can only have
|
||||||
one :abbr:`SPF (Sender Policy Framework)` record.
|
one :abbr:`SPF (Sender Policy Framework)` record.
|
||||||
|
|
||||||
If the domain name does not yet have an :abbr:`SPF (Sender Policy Framework)` record, the content
|
If the domain name does not yet have a :abbr:`SPF (Sender Policy Framework)` record, create one
|
||||||
of the record to create it is as follows:
|
using the following input: `v=spf1 include:_spf.odoo.com ~all`
|
||||||
|
|
||||||
`v=spf1 include:_spf.odoo.com ~all`
|
If the domain name already has a :abbr:`SPF (Sender Policy Framework)` record, the record must be
|
||||||
|
|
||||||
If the domain name already has an :abbr:`SPF (Sender Policy Framework)` record, the record must be
|
|
||||||
updated (and do not create a new one).
|
updated (and do not create a new one).
|
||||||
|
|
||||||
.. example::
|
.. example::
|
||||||
@ -111,6 +106,11 @@ Conformance)` record of a domain name tell the destination server what to do wit
|
|||||||
that fails the :abbr:`SPF (Sender Policy Framework)` and/or :abbr:`DKIM (DomainKeys Identified
|
that fails the :abbr:`SPF (Sender Policy Framework)` and/or :abbr:`DKIM (DomainKeys Identified
|
||||||
Mail)` check.
|
Mail)` check.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
DMARC: TXT record
|
||||||
|
|
||||||
|
`v=DMARC1; p=none;`
|
||||||
|
|
||||||
There are three :abbr:`DMARC (Domain-based Message Authentication, Reporting, & Conformance)`
|
There are three :abbr:`DMARC (Domain-based Message Authentication, Reporting, & Conformance)`
|
||||||
policies:
|
policies:
|
||||||
|
|
||||||
@ -118,15 +118,15 @@ policies:
|
|||||||
- `p=quarantine`
|
- `p=quarantine`
|
||||||
- `p=reject`
|
- `p=reject`
|
||||||
|
|
||||||
`p=quarantine` and `p=reject` instruct the server that receives an email to quarantine that email
|
`p=quarantine` and `p=reject` instruct the server that receives an email to quarantine that email or
|
||||||
or ignore it if the :abbr:`SPF (Sender Policy Framework)` and/or :abbr:`DKIM (DomainKeys Identified
|
ignore it if the :abbr:`SPF (Sender Policy Framework)` and/or :abbr:`DKIM (DomainKeys Identified
|
||||||
Mail)` check fails.
|
Mail)` check fails.
|
||||||
|
|
||||||
If the domain name uses :abbr:`DMARC (Domain-based Message Authentication, Reporting, &
|
If the domain name uses :abbr:`DMARC (Domain-based Message Authentication, Reporting, &
|
||||||
Conformance)` and has defined one of these policies, the domain must be :abbr:`SPF (Sender Policy
|
Conformance)` and has defined one of these policies, the domain must be :abbr:`SPF (Sender Policy
|
||||||
Framework)` compliant or enable :abbr:`DKIM (DomainKeys Identified Mail)`.
|
Framework)` compliant or enable :abbr:`DKIM (DomainKeys Identified Mail)`.
|
||||||
|
|
||||||
.. danger::
|
.. warning::
|
||||||
Yahoo or AOL are examples of email providers with a :abbr:`DMARC (Domain-based Message
|
Yahoo or AOL are examples of email providers with a :abbr:`DMARC (Domain-based Message
|
||||||
Authentication, Reporting, & Conformance)` policy set to `p=reject`. Odoo strongly advises
|
Authentication, Reporting, & Conformance)` policy set to `p=reject`. Odoo strongly advises
|
||||||
against using an *@yahoo.com* or *@aol.com* address for the database users. These emails will
|
against using an *@yahoo.com* or *@aol.com* address for the database users. These emails will
|
||||||
@ -136,16 +136,55 @@ Framework)` compliant or enable :abbr:`DKIM (DomainKeys Identified Mail)`.
|
|||||||
should not impact the deliverability if the :abbr:`DMARC (Domain-based Message Authentication,
|
should not impact the deliverability if the :abbr:`DMARC (Domain-based Message Authentication,
|
||||||
Reporting, & Conformance)` check fails.
|
Reporting, & Conformance)` check fails.
|
||||||
|
|
||||||
|
:abbr:`DMARC (Domain-based Message Authentication, Reporting, & Conformance)` records are comprised
|
||||||
|
of tags in the form of :abbr:`DNS (Domain Name System)` records. These tags/parameters allow for
|
||||||
|
reporting, such as :abbr:`RUA (Reporting URI of aggregate reports)` and :abbr:`RUF (Reporting URI
|
||||||
|
for forensic reports)`, along with more precise specification like :abbr:`PCT (Percentage of
|
||||||
|
messages subjected to filtering)`, :abbr:`P (Policy for organizational domain)`, :abbr:`SP (Policy
|
||||||
|
for subdomains of the OD)` :abbr:`ADKIM (Alignment mode for DKIM)` & :abbr:`ASPF (Alignment mode for
|
||||||
|
SPF)`. For best practice, the the :abbr:`DMARC (Domain-based Message Authentication, Reporting, &
|
||||||
|
Conformance)` policy should not start out being too restrictive.
|
||||||
|
|
||||||
|
The following chart displays available tags:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
:widths: 15 50 35
|
||||||
|
|
||||||
|
* - Tag Name
|
||||||
|
- Purpose
|
||||||
|
- Example
|
||||||
|
* - v
|
||||||
|
- Protocol version
|
||||||
|
- `v=DMARC1`
|
||||||
|
* - pct
|
||||||
|
- Percentage of messages subjected to filtering
|
||||||
|
- `pct=20`
|
||||||
|
* - ruf
|
||||||
|
- Reporting URI for forensic reports
|
||||||
|
- `ruf=mailto:authfail@example.com`
|
||||||
|
* - rua
|
||||||
|
- Reporting URI of aggregate reports
|
||||||
|
- `rua=mailto:aggrep@example.com`
|
||||||
|
* - p
|
||||||
|
- Policy for organizational domain
|
||||||
|
- `p=quarantine`
|
||||||
|
* - sp
|
||||||
|
- Policy for subdomains of the OD
|
||||||
|
- `sp=reject`
|
||||||
|
* - adkim
|
||||||
|
- Alignment mode for DKIM
|
||||||
|
- `adkim=s`
|
||||||
|
* - aspf
|
||||||
|
- Alignment mode for SPF
|
||||||
|
- `aspf=r`
|
||||||
|
|
||||||
Check the :abbr:`DMARC (Domain-based Message Authentication, Reporting, & Conformance)` record of a
|
Check the :abbr:`DMARC (Domain-based Message Authentication, Reporting, & Conformance)` record of a
|
||||||
domain name with a tool like `MXToolbox DMARC <https://mxtoolbox.com/DMARC.aspx>`_.
|
domain name with a tool like `MXToolbox DMARC <https://mxtoolbox.com/DMARC.aspx>`_.
|
||||||
|
|
||||||
If a partner, customer, or vendor, uses :abbr:`DMARC (Domain-based Message Authentication,
|
.. seealso::
|
||||||
Reporting, & Conformance)` and has defined one of these policies, the Odoo server cannot relay
|
`DMARC.org is another great resource to learn about DMARC records.
|
||||||
emails from this partner to the database users.
|
<https://dmarc.org/overview/>`_
|
||||||
|
|
||||||
To solve this issue, :ref:`handle user notifications in Odoo
|
|
||||||
<discuss_app/notification_preferences>`, or replace the email address of the partner with a default
|
|
||||||
email address.
|
|
||||||
|
|
||||||
.. _email_communication/SPFDKIM_common_providers:
|
.. _email_communication/SPFDKIM_common_providers:
|
||||||
|
|
||||||
@ -165,30 +204,7 @@ SPF, DKIM & DMARC documentation of common providers
|
|||||||
|
|
||||||
To fully test the configuration, use the `Mail-Tester <https://www.mail-tester.com/>`_ tool, which
|
To fully test the configuration, use the `Mail-Tester <https://www.mail-tester.com/>`_ tool, which
|
||||||
gives a full overview of the content and configuration in one sent email. Mail-Tester can also be
|
gives a full overview of the content and configuration in one sent email. Mail-Tester can also be
|
||||||
used for other, lesser-known providers.
|
used to configure records for other, lesser-known providers.
|
||||||
|
|
||||||
.. _email_communication/default:
|
.. seealso::
|
||||||
|
`Using Mail-Tester to set SPF Records for specific carriers <https://www.mail-tester.com/spf/>`_
|
||||||
Use a default email address
|
|
||||||
===========================
|
|
||||||
|
|
||||||
Access the :guilabel:`System Parameters` by activating :ref:`developer mode <developer-mode>` and
|
|
||||||
going to :menuselection:`Settings --> Technical --> Parameters --> System Parameters` menu.
|
|
||||||
|
|
||||||
To force the email address from which emails are sent, a combination of the following keys needs to
|
|
||||||
be set in the system parameters of the database:
|
|
||||||
|
|
||||||
- `mail.default.from`: accepts the local part or a complete email address as value
|
|
||||||
- `mail.default.from_filter`: accepts a domain name or a full email address as value
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
The `mail.default.from_filter` works only for `odoo-bin` configurations, otherwise this
|
|
||||||
parameter can be set using the `from_filter` field on `ir.mail_server`.
|
|
||||||
|
|
||||||
If the email address of the author does not match `mail.default.from_filter`, the email address is
|
|
||||||
replaced by `mail.default.from` (if it contains a full email address) or a combination of
|
|
||||||
`mail.default.from` and `mail.catchall.domain`.
|
|
||||||
|
|
||||||
If the `from_filter` contains a full email address, and if the `mail.default.from` is the same as
|
|
||||||
this address, then all of the email addresses that are different from `mail.default.from` will be
|
|
||||||
encapsulated in `mail.default.from`.
|
|
||||||
|
@ -6,87 +6,81 @@ Odoo Online or Odoo.sh users
|
|||||||
============================
|
============================
|
||||||
|
|
||||||
Since **Odoo sets up its own mail servers for the database**, outgoing and incoming emails already
|
Since **Odoo sets up its own mail servers for the database**, outgoing and incoming emails already
|
||||||
work out-of-the-box. So for **Odoo Online** and **Odoo.sh** customers, nothing needs to be done!
|
work out-of-the-box. So for **Odoo Online** and **Odoo.sh** customers, nothing needs to be
|
||||||
|
configured!
|
||||||
|
|
||||||
Unless an external mail server is required to send large batches of mass mailing, simply use the
|
Unless an external mail server is required to send large batches of mass emails, simply use the
|
||||||
standard online Odoo database normally since it has already been preconfigured for email.
|
standard online Odoo database normally since it has already been pre-configured to send email.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
The Odoo server is subject to a daily email limit to prevent abuse. The default limit is 200
|
||||||
|
emails sent per day for databases with an **Enterprise** subscription. This limit can be
|
||||||
|
increased under certain conditions. See the :doc:`FAQ <faq>` or contact support for more
|
||||||
|
information.
|
||||||
|
|
||||||
Scope of this documentation
|
Scope of this documentation
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
This document is **mainly dedicated to Odoo on-premise users** who don't benefit from an
|
This document is **mainly dedicated to Odoo on-premise databases** who don't benefit from an
|
||||||
out-of-the-box solution to send and receive emails in Odoo, unlike `Odoo Online <https://www.odoo.
|
out-of-the-box solution to send and receive emails in Odoo, unlike `Odoo Online <https://www.odoo.
|
||||||
com/trial>`_ and `Odoo.sh <https://www.odoo.sh>`_.
|
com/trial>`_ and `Odoo.sh <https://www.odoo.sh>`_. Incoming and outgoing servers must be configured
|
||||||
|
for on-premise databases.
|
||||||
|
|
||||||
The following sections below contain information on how to integrate an external email server with
|
The following sections below contain information on how to integrate an external email server with
|
||||||
Odoo.
|
Odoo.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
If no one in the company is used to managing email servers, Odoo Online and Odoo.sh are strongly
|
If no one in the company is employed to manage email servers, Odoo Online and Odoo.sh are
|
||||||
recommended. Those Odoo hosting types' email systems work instantly and are monitored by
|
strongly recommended. In these Odoo hosting types email sending and receiving works instantly
|
||||||
professionals. Nevertheless, a company can use their own email server if they want to manage the
|
and is monitored by professionals. Nevertheless, a company can use their own email server if
|
||||||
email server's reputation themselves.
|
they want to manage the email server's reputation themselves. For more information see
|
||||||
|
:doc:`Configure DNS records to send emails in Odoo <email_domain>`
|
||||||
|
|
||||||
.. note::
|
.. _email_servers/notifications:
|
||||||
Office 365 email servers don't easily allow the sending of external emails from hosts like Odoo.
|
|
||||||
Refer to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-a-
|
Default notifications system
|
||||||
multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-
|
============================
|
||||||
c805d654b4c4>`_ to make it work.
|
|
||||||
|
Documents in Odoo (such as a CRM opportunity, a sales order, an invoice, etc.) have a discussion
|
||||||
|
thread, called *chatter*.
|
||||||
|
|
||||||
|
When a database user posts a message in the chatter, this message is sent by email to the followers
|
||||||
|
of the document as a notification (except to the sender). If a follower replies to the message,
|
||||||
|
the reply updates the chatter, and Odoo relays another reply to the followers as a notification.
|
||||||
|
Messages sent back to the chatter from users or external users will appear in the chatter from
|
||||||
|
their respective email, or as the name listed in their *Contacts* record.
|
||||||
|
|
||||||
|
These notifications are sent using a default from address. For more information see
|
||||||
|
:ref:`Use a default email address <email_communication/default>`.
|
||||||
|
|
||||||
Manage outbound messages
|
Manage outbound messages
|
||||||
========================
|
========================
|
||||||
|
|
||||||
As a system admin, go to :menuselection:`Settings --> General Settings --> Discuss` in Odoo, and
|
As a system admin, go to :menuselection:`Settings --> General Settings --> Discuss` in Odoo, and
|
||||||
enable the :guilabel:`External Email Servers` option. Then, click :guilabel:`Save`. Next, click
|
enable the :guilabel:`Custom Email Servers` option. Then, click :guilabel:`Save`. Next, click
|
||||||
:guilabel:`Outgoing Email Servers` and click :guilabel:`Create` to create a new outgoing mail
|
:guilabel:`Outgoing Email Servers` and click :guilabel:`Create` to create a new outgoing mail server
|
||||||
server record in Odoo. Reference the SMTP data of the external email server. Once all the
|
record in Odoo. Reference the SMTP data of the external email server. Once all the information has
|
||||||
information has been filled out, click :guilabel:`Test Connection`.
|
been filled out, click :guilabel:`Test Connection`.
|
||||||
|
|
||||||
Here is a typical configuration for a G Suite server.
|
.. seealso::
|
||||||
|
- :doc:`/administration/maintain/google_oauth`
|
||||||
.. image:: email_servers/outgoing-server.png
|
- :doc:`/administration/maintain/azure_oauth`
|
||||||
:align: center
|
|
||||||
:alt: The typical G Suite configuration on Odoo.
|
|
||||||
|
|
||||||
Then, go back to :menuselection:`Settings --> General Settings --> Discuss` and set the email
|
|
||||||
domain name in the :guilabel:`Alias Domain` name. Finally, click :guilabel:`Save` to finish setting
|
|
||||||
up the email server.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
If an `[AUTHENTICATION FAILED] Invalid credentials (Failure)` warning appears when
|
Ensuring the outgoing domain has :abbr:`SPF (Sender Policy Framework)`, :abbr:`DKIM (DomainKeys
|
||||||
:guilabel:`Test Connection` is clicked for a Gmail address, activate the :guilabel:`Less secure
|
Identified Mail)` and :abbr:`DMARC (Domain-based Message Authentication, Reporting, &
|
||||||
app access` option. A direct link can be `accessed here <https://myaccount.google.com/
|
Conformance)` set up on the :abbr:`DNS (Domain Name System)` will improve deliverability. For
|
||||||
lesssecureapps?pli=1>`_.
|
more information see :doc:`email_domain`.
|
||||||
|
|
||||||
In addition to that, enable the :guilabel:`IMAP setting` on the Gmail account.
|
|
||||||
|
|
||||||
Use an Office 365 server
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
An Office 365 server can be used if the database's hosting type is **Odoo on-premise**. Office 365
|
|
||||||
SMTP relays are not compatible with Odoo Online or Odoo.sh unless Odoo is configured to
|
|
||||||
:ref:`force the outgoing "From" address <email_communication/default_from>`.
|
|
||||||
|
|
||||||
Please refer to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-
|
|
||||||
a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-
|
|
||||||
c805d654b4c4>`_ to configure an SMTP relay for the Odoo database's IP address.
|
|
||||||
|
|
||||||
Use a G Suite server
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
A G Suite server can be used for any Odoo hosting type. To do so, set up the SMTP relay service.
|
|
||||||
The configuration steps are explained in `Google documentation <https://support.google.com
|
|
||||||
/a/answer/2956491?hl=en>`__.
|
|
||||||
|
|
||||||
.. _email_servers/restriction:
|
.. _email_servers/restriction:
|
||||||
|
|
||||||
Restriction
|
Port restriction
|
||||||
-----------
|
----------------
|
||||||
|
|
||||||
Please note that port 25 is blocked for security reasons on Odoo Online and Odoo.sh platforms. Try
|
Note that port 25 is blocked for security reasons on the Odoo Online and Odoo.sh platforms. Try
|
||||||
using ports 465, 587, or 2525 instead.
|
using ports 465, 587, or 2525 instead.
|
||||||
|
|
||||||
.. _email_communication/default_from:
|
.. _email_communication/default:
|
||||||
|
|
||||||
Use a default "From" email address
|
Use a default "From" email address
|
||||||
----------------------------------
|
----------------------------------
|
||||||
@ -94,112 +88,56 @@ Use a default "From" email address
|
|||||||
Sometimes, an email's "From" (outgoing) address can belong to a different domain, and that can be a
|
Sometimes, an email's "From" (outgoing) address can belong to a different domain, and that can be a
|
||||||
problem.
|
problem.
|
||||||
|
|
||||||
For example, if a customer with the email address *mary\@customer.example.com* responds to a
|
For example, if a customer with the email address `mary\@customer.example.com` responds to a
|
||||||
message, Odoo will try to redistribute that same email to the other subscribers in the thread.
|
message, Odoo will try to redistribute that same email to the other subscribers in the thread.
|
||||||
However, if the domain *customer.example.com* forbids that kind of usage for security, the email
|
However, if the domain `customer.example.com` forbids that kind of usage for security, the email
|
||||||
that Odoo is trying to redistribute would get rejected by some recipients' email servers.
|
that Odoo is trying to redistribute would get rejected by some recipients' email servers.
|
||||||
|
|
||||||
To avoid that problem, make sure all emails use a "From" address from the same authorized domain.
|
To avoid that problem, Odoo sends all emails using a "From" address from the same authorized
|
||||||
|
domain.
|
||||||
|
|
||||||
If the MTA supports `SRS (Sender Rewriting Scheme) <https://en.wikipedia.org/wiki/Sender_Rewriting
|
Access the :guilabel:`System Parameters` by activating :ref:`developer mode <developer-mode>` and
|
||||||
_Scheme>`_, SRS can be enabled to handle these situations. However, that is more complex and
|
going to :menuselection:`Settings --> Technical --> Parameters --> System Parameters` menu.
|
||||||
requires more technical knowledge that is not meant to be covered by this documentation.
|
|
||||||
|
|
||||||
Instead, Odoo can be configured to do something similar by itself:
|
To force the email address from which emails are sent, a combination of the following keys needs to
|
||||||
|
be set in the system parameters of the database:
|
||||||
|
|
||||||
#. Set the :guilabel:`Alias Domain` name in the :menuselection:`Settings --> General Settings
|
- `mail.default.from`: accepts the local part or a complete email address as value
|
||||||
--> Discuss`.
|
- `mail.default.from_filter`: accepts a domain name or a full email address as value
|
||||||
|
|
||||||
.. image:: email_servers/alias-domain.png
|
|
||||||
:alt: Setting the domain alias configuration on Odoo.
|
|
||||||
|
|
||||||
#. Turn on :doc:`developer mode </applications/general/developer_mode>`.
|
|
||||||
#. Go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters`.
|
|
||||||
#. Add one system parameter from the following list:
|
|
||||||
|
|
||||||
* To use the same "From" address for *all* outgoing messages, use the key `mail.force.smtp.from`
|
|
||||||
and set that address as value (such as `outgoing@mycompany.example.com`).
|
|
||||||
* To keep the original "From" address for emails that use the same domain, but change it for
|
|
||||||
emails that use a different domain, use the key `mail.dynamic.smtp.from` and set the value as
|
|
||||||
the email address that should be used in those cases (such as `outgoing@mycompany.example.com`
|
|
||||||
).
|
|
||||||
|
|
||||||
.. _email_communication/inbound_messages:
|
|
||||||
|
|
||||||
Manage inbound messages
|
|
||||||
=======================
|
|
||||||
|
|
||||||
Odoo relies on generic email aliases to fetch incoming messages.
|
|
||||||
|
|
||||||
* **Reply messages** of messages sent from Odoo are routed to their original discussion thread (and
|
|
||||||
to the inbox of all its followers) by the catchall alias (**catchall@**).
|
|
||||||
* **Bounced messages** are routed to **bounce@** in order to track them in Odoo. This is especially
|
|
||||||
used in `Odoo Email Marketing <https://www.odoo.com/page/email-marketing>`__ to opt-out invalid
|
|
||||||
recipients.
|
|
||||||
* **Original messages**: Several business objects have their own alias to create new records in
|
|
||||||
Odoo from incoming emails:
|
|
||||||
|
|
||||||
* Sales Channel (to create Leads or Opportunities in `Odoo CRM <https://www.odoo.com/page/
|
|
||||||
crm>`__),
|
|
||||||
* Support Channel (to create Tickets in `Odoo Helpdesk <https://www.odoo.com/page/helpdesk>`__),
|
|
||||||
* Projects (to create new Tasks in `Odoo Project <https://www.odoo.com/page
|
|
||||||
/project-management>`__),
|
|
||||||
* Job Positions (to create Applicants in `Odoo Recruitment <https://www.odoo.com/page
|
|
||||||
/recruitment>`__),
|
|
||||||
* etc.
|
|
||||||
|
|
||||||
Depending on the mail server, there might be several methods to fetch emails. The easiest and most
|
|
||||||
recommended method is to manage one email address per Odoo alias in the mail server.
|
|
||||||
|
|
||||||
* Create the corresponding email addresses in the mail server (catchall@, bounce@, sales@, etc.).
|
|
||||||
* Set the :guilabel:`Alias Domain` name in :menuselection:`Settings --> General Settings -->
|
|
||||||
Discuss`.
|
|
||||||
* If the database's hosting type is Odoo on-premise, create an :guilabel:`Incoming Mail Server` in
|
|
||||||
Odoo for each alias. This can be done from the General Settings as well. Fill out the form
|
|
||||||
according to the email provider's settings. Leave the :guilabel:`Actions to Perform on Incoming
|
|
||||||
Mails` field blank. Once all the information has been filled out, click on :guilabel:`TEST &
|
|
||||||
CONFIRM`.
|
|
||||||
|
|
||||||
.. image:: email_servers/incoming-server.png
|
|
||||||
:align: center
|
|
||||||
:alt: Incoming mail server configuration on Odoo.
|
|
||||||
|
|
||||||
* If the database's hosting type is Odoo Online or Odoo.sh, redirecting incoming messages to Odoo's
|
|
||||||
domain name instead of the external email server is recommended. That way, incoming messages can
|
|
||||||
be received without delay. Odoo Online only fetches incoming messages of external servers once
|
|
||||||
every hour. Redirections for all email addresses should be set to Odoo's domain name in the email
|
|
||||||
server (e.g. *catchall\@mydomain.ext* to *catchall\@mycompany.odoo.com*).
|
|
||||||
|
|
||||||
All the aliases are customizable in Odoo. Object aliases can be edited from their respective
|
|
||||||
configuration view.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
To edit catchall and bounce aliases, first activate the :ref:`developer mode <developer-mode>`.
|
|
||||||
Then, go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters` to
|
|
||||||
customize the aliases (*mail.catchall.alias* & *mail.bounce.alias*).
|
|
||||||
|
|
||||||
.. image:: email_servers/system-parameters.png
|
|
||||||
:align: center
|
|
||||||
:alt: System parameters with catchall configuration in Odoo.
|
|
||||||
|
|
||||||
By default, inbound messages are fetched every 5 minutes in Odoo on-premise.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
This value can be changed in :ref:`developer mode <developer-mode>`. Go to
|
The `mail.default.from_filter` works only for `odoo-bin` configurations or the default Odoo email
|
||||||
:menuselection:`Settings --> Technical --> Automation --> Scheduled Actions` and look for
|
server, otherwise this parameter can be set using the `from_filter` field on `ir.mail_server`.
|
||||||
:guilabel:`Mail: Fetchmail Service`.
|
|
||||||
|
|
||||||
.. _email_servers/outgoing-email-server:
|
The field can be a domain name or an entire email address, or it can remain empty. If the sender's
|
||||||
|
email address does not match this set filter, then the email will be encapsulated using a
|
||||||
|
combination of the two system parameters: `mail.default.from` and `mail.catchall.domain`.
|
||||||
|
|
||||||
Utilizing the From Filter on an outgoing email server
|
.. example::
|
||||||
=====================================================
|
In the following example, the from email address is replaced with the combination of the the two
|
||||||
|
system parameters (`mail.default.from` and `mail.catchall.domain`). This is the default\
|
||||||
|
notifications configuration in Odoo: ``“Admin” <admin@example.com>`` => ``“Admin”
|
||||||
|
<notifications@mycompany.com>``.
|
||||||
|
|
||||||
|
In other words if the email address of the author does not match `mail.default.from_filter`, the
|
||||||
|
email address is replaced by `mail.default.from` (if it contains a full email address) or a
|
||||||
|
combination of `mail.default.from` and `mail.catchall.domain`.
|
||||||
|
|
||||||
|
If the `from_filter` contains a full email address, and if the `mail.default.from` is the same as
|
||||||
|
this address, then all of the email addresses that are different from `mail.default.from` will be
|
||||||
|
encapsulated in `mail.default.from`.
|
||||||
|
|
||||||
|
.. _email_communication/from_filter:
|
||||||
|
|
||||||
|
Utilizing the "From" filter on an outgoing email server
|
||||||
|
-------------------------------------------------------
|
||||||
|
|
||||||
The :guilabel:`FROM Filtering` field allows for the use of a specific outgoing email server
|
The :guilabel:`FROM Filtering` field allows for the use of a specific outgoing email server
|
||||||
depending on the :guilabel:`From` email address or domain that Odoo is sending on behalf of. This
|
depending on the :guilabel:`From` email address or domain that Odoo is sending on behalf of. This
|
||||||
setting can be used to improve the deliverability or sending success rate of emails sent from the
|
setting can be used to improve the deliverability or sending success rate of emails sent from the
|
||||||
database. Setting the :guilabel:`FROM Filtering` field can also be used to send from different
|
database. Setting the :guilabel:`FROM Filtering` field can also be used to send from different
|
||||||
domains in a multi-company environment. Access this field in Odoo by navigating to
|
domains in a multi-company environment. Access this field in Odoo by navigating to
|
||||||
:menuselection:`Settings --> Custom Mail Servers --> Outgoing Mail Servers --> New`.
|
:menuselection:`Settings --> Discuss --> Custom Mail Servers --> Outgoing Mail Servers --> New`.
|
||||||
|
|
||||||
.. image:: email_servers/from-filter-setting.png
|
.. image:: email_servers/from-filter-setting.png
|
||||||
:align: center
|
:align: center
|
||||||
@ -231,24 +169,105 @@ first outgoing email server (sorted by priority).
|
|||||||
example, if there are two email servers, one with a priority of `10` and the other with a
|
example, if there are two email servers, one with a priority of `10` and the other with a
|
||||||
priority of `20`, then the email server with a priority of `10` is used first.
|
priority of `20`, then the email server with a priority of `10` is used first.
|
||||||
|
|
||||||
Set up different dedicated servers for transactional and mass mails
|
.. _email_communication/mass_mails:
|
||||||
===================================================================
|
|
||||||
|
|
||||||
In Odoo a separate Mail Transfer Agent (MTA) server can be used for transactional emails and mass
|
Set up different dedicated servers for transactional and mass emails
|
||||||
mailings. Example: Use Postmark or SendinBlue for transactional emails, and Amazon SES, Mailgun or
|
--------------------------------------------------------------------
|
||||||
Sendgrid for mass mailings.
|
|
||||||
|
|
||||||
.. tip::
|
In Odoo a separate email server can be used for transactional emails and mass
|
||||||
|
mailings. Example: Use Postmark or SendinBlue for transactional emails, and Amazon SES, Mailgun,
|
||||||
|
Sendgrid or :doc:`Mailjet </administration/maintain/mailjet_api>` for mass mailings.
|
||||||
|
|
||||||
|
.. important::
|
||||||
A default outgoing email server is already configured. Do not create an alternative one unless a
|
A default outgoing email server is already configured. Do not create an alternative one unless a
|
||||||
specific external outgoing email server is needed for technical reasons.
|
specific external outgoing email server is needed for technical reasons.
|
||||||
|
|
||||||
To do this, first activate the :ref:`developer mode <developer-mode>`, and then go to
|
To do this, first activate the :ref:`developer mode <developer-mode>`, and then go to
|
||||||
:menuselection:`Settings --> Technical --> Outgoing` email servers. There, create two email MTA
|
:menuselection:`Settings --> Technical --> Outgoing` email servers. There, create two outgoing email
|
||||||
server settings; one for the transactional emails and one for the mass mailing server. Make sure
|
server settings; one for the transactional emails and one for the mass mailing server. Make sure to
|
||||||
to give priority to the transactional server over the mass mailing server by providing a lower
|
give priority to the transactional server over the mass mailing server by providing a lower priority
|
||||||
priority number for the transactional MTA server.
|
number for the transactional email server.
|
||||||
|
|
||||||
Now, go to :menuselection:`Email Marketing --> Settings` and enable :guilabel:`Dedicated Server`.
|
Now, go to :menuselection:`Email Marketing --> Settings` and enable :guilabel:`Dedicated Server`.
|
||||||
With these settings, Odoo uses the server with the lower priority for transactional emails, and the
|
Choose the appropriate email server. With these settings, Odoo uses the server with the lower
|
||||||
server here selected for mass mails. Note that in this case, the domain's Sender Policy Framework
|
priority for transactional emails, and the server here selected for mass mails. Note that in this
|
||||||
(SPF) records must be set to include both transactional and mass mail servers.
|
case, the domain's Sender Policy Framework (SPF) records must be set to include both transactional
|
||||||
|
and mass mail servers.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- :doc:`email_domain`
|
||||||
|
|
||||||
|
.. _email_communication/inbound_messages:
|
||||||
|
|
||||||
|
Manage inbound messages
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Odoo relies on generic email aliases to fetch incoming messages.
|
||||||
|
|
||||||
|
* **Reply messages** of messages sent from Odoo are routed to their original discussion thread (and
|
||||||
|
to the inbox of all its followers) by the alias of the model if there is any or by the catchall
|
||||||
|
alias (**catchall@**). Replies to messages of models that don't have a custom alias will use the
|
||||||
|
catchall alias (`catchall@mycompany.odoo.com`). The catchall address, however, does not have
|
||||||
|
another action attached to it like other aliases might, it is only used to collect replies.
|
||||||
|
* **Bounced messages** are used as a Return-Path. One example this is especially
|
||||||
|
useful for is in `Odoo Email Marketing <https://www.odoo.com/page/email-marketing>`__. In this
|
||||||
|
case bounces are opt-out based on if the email bounced too many times (5) in the last month and
|
||||||
|
the bounces are separated by one week. This is done to avoid blacklisting someone because of a
|
||||||
|
mail server error. If these circumstances are met then the email is considered invalid and is
|
||||||
|
blacklisted. A log note is added on the contact under :guilabel:`Blacklisted Email Addresses` on
|
||||||
|
the :guilabel:`Email Marketing Configuration Menu`.
|
||||||
|
|
||||||
|
Messages that bounce in the chatter (outside of Email Marketing) will populate a red envelope
|
||||||
|
indicating the failed delivery. This can be helpful to know that a Sales Order or an Invoice did
|
||||||
|
not reach its final destination.
|
||||||
|
* **Original messages**: several business objects have their own alias to create new records in Odoo
|
||||||
|
from incoming emails:
|
||||||
|
|
||||||
|
* Sales channel (to create *Leads* or *Opportunities* in `Odoo CRM <https://www.odoo.com/page/
|
||||||
|
crm>`_)
|
||||||
|
* Support channel (to create *Tickets* in `Odoo Helpdesk <https://www.odoo.com/page/helpdesk>`_)
|
||||||
|
* Projects (to create new *Tasks* in `Odoo Project <https://www.odoo.com/page
|
||||||
|
/project-management>`_)
|
||||||
|
* Job positions (to create *Applicants* in `Odoo Recruitment <https://www.odoo.com/page
|
||||||
|
/recruitment>`_)
|
||||||
|
|
||||||
|
Depending on the mail server, there might be several methods to fetch emails. The easiest and most
|
||||||
|
recommended method is to manage one email address per Odoo alias in the mail server.
|
||||||
|
|
||||||
|
* Create the corresponding email addresses in the mail server (**catchall@**, **bounce@**,
|
||||||
|
**sales@**, etc.).
|
||||||
|
* Set the :guilabel:`Alias Domain` name in :menuselection:`Settings --> General Settings -->
|
||||||
|
Discuss`. Changing the :guilabel:`Alias Domain` will change the catchall's domain for the
|
||||||
|
database.
|
||||||
|
* If the database's hosting type is Odoo on-premise, create an :guilabel:`Incoming Mail Server` in
|
||||||
|
Odoo for each alias. To create a new incoming server go to: :menuselection:`Settings --> Discuss
|
||||||
|
--> Custom Mail Servers --> Incoming Mail Servers --> New` Fill out the form according to the
|
||||||
|
email provider's settings. Leave the :guilabel:`Actions to Perform on Incoming Mails` field blank.
|
||||||
|
Once all the information has been filled out, click on :guilabel:`TEST & CONFIRM`.
|
||||||
|
|
||||||
|
.. image:: email_servers/incoming-server.png
|
||||||
|
:align: center
|
||||||
|
:alt: Incoming mail server configuration on Odoo.
|
||||||
|
|
||||||
|
* If the database's hosting type is Odoo Online or Odoo.sh, redirecting or forwarding incoming
|
||||||
|
messages to Odoo's domain name instead of the external email server is recommended. That way,
|
||||||
|
incoming messages can be received without delay. Redirections for all email addresses should be
|
||||||
|
set to Odoo's domain name in the email server (e.g. `catchall\@mydomain.ext` to
|
||||||
|
`catchall\@mycompany.odoo.com`).
|
||||||
|
|
||||||
|
All the aliases are customizable in Odoo. Object aliases can be edited from their respective
|
||||||
|
configuration view by navigating to :menuselection:`Settings --> Technical Menu --> Email -->
|
||||||
|
Aliases`.
|
||||||
|
|
||||||
|
To edit catchall and bounce aliases, first activate the :ref:`developer mode <developer-mode>`.
|
||||||
|
Then, go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters` to
|
||||||
|
customize the aliases (`mail.catchall.alias` & `mail.bounce.alias`). These types of changes should
|
||||||
|
be completed prior to the database going live. If a customer replies after a change is made then the
|
||||||
|
system will not recognize the old alias and the reply won't be received.
|
||||||
|
|
||||||
|
By default, inbound messages are fetched every 5 minutes for on-premise databases.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
This value can be changed in :ref:`developer mode <developer-mode>`. Go to
|
||||||
|
:menuselection:`Settings --> Technical --> Automation --> Scheduled Actions` and look for
|
||||||
|
:guilabel:`Mail: Fetchmail Service`.
|
||||||
|
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 117 KiB |