[IMP] Misc: Remove section from from-address
closes odoo/documentation#3813
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`.
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
<email_servers/outgoing-email-server>`.
|
||||
<email_communication/from_filter>`.
|
||||
#. The :guilabel:`mail.default.from` system parameter must have the value
|
||||
`notifications\@yourdomain.com`.
|
||||
#. 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
|
||||
thread, called *chatter*.
|
||||
Sometimes, emails from Odoo are misclassified by the different email providers and end up in spam
|
||||
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
|
||||
of the document. If a follower replies to the message, the reply updates the chatter, and Odoo
|
||||
relays the reply to the followers as a notification.
|
||||
It is standard in Odoo that emails are received from ``"name of the author"
|
||||
<notifications@mycompany.odoo.com>``. In other words this can be translated to: ``"name of the
|
||||
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,
|
||||
customers, or vendors) are relayed on behalf of the database users. Messages sent back to the
|
||||
chatter from external users will appear in the chatter from their respective email addresses, or as
|
||||
they are listed in their Contacts record.
|
||||
In order for servers to accept emails from Odoo on a more regular basis, one of the solutions is
|
||||
for customers to create rules within their own mailbox. A filter can be added to the email inbox so
|
||||
that when email is received from Odoo (`notifications@mycompany.odoo.com`) it is moved to the
|
||||
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
|
||||
outgoing email server to send emails from a custom domain.
|
||||
If an Odoo email server appears on a blacklist, notify Odoo via a `new help ticket
|
||||
<https://www.odoo.com/help>`_ and the support team will work to get the servers removed from the
|
||||
blacklist.
|
||||
|
||||
.. 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.
|
||||
|
||||
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.).
|
||||
Should the Odoo database be using a custom domain for sending emails from Odoo there are three
|
||||
records that should be implemented on the custom domain's DNS to ensure deliverability of email.
|
||||
This includes setting records for :abbr:`SPF (Sender Policy Framework)`,
|
||||
:abbr:`DKIM (DomainKeys Identified Mail)` and
|
||||
:abbr:`DMARC (Domain-based Message Authentication, Reporting, & Conformance)`. Ultimately though,
|
||||
it is up to the discretion of the final receiving mailbox.
|
||||
|
||||
.. _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
|
||||
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
|
||||
sender's :abbr:`SPF (Sender Policy Framework)` record.
|
||||
it checks whether the IP address of the sending server is on the list of allowed IPs according to
|
||||
the sender's :abbr:`SPF (Sender Policy Framework)` record.
|
||||
|
||||
.. note::
|
||||
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
|
||||
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
|
||||
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
|
||||
one :abbr:`SPF (Sender Policy Framework)` record.
|
||||
|
||||
If the domain name does not yet have an :abbr:`SPF (Sender Policy Framework)` record, the content
|
||||
of the record to create it is as follows:
|
||||
If the domain name does not yet have a :abbr:`SPF (Sender Policy Framework)` record, create one
|
||||
using the following input: `v=spf1 include:_spf.odoo.com ~all`
|
||||
|
||||
`v=spf1 include:_spf.odoo.com ~all`
|
||||
|
||||
If the domain name already has an :abbr:`SPF (Sender Policy Framework)` record, the record must be
|
||||
If the domain name already has a :abbr:`SPF (Sender Policy Framework)` record, the record must be
|
||||
updated (and do not create a new one).
|
||||
|
||||
.. 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
|
||||
Mail)` check.
|
||||
|
||||
.. example::
|
||||
DMARC: TXT record
|
||||
|
||||
`v=DMARC1; p=none;`
|
||||
|
||||
There are three :abbr:`DMARC (Domain-based Message Authentication, Reporting, & Conformance)`
|
||||
policies:
|
||||
|
||||
@ -118,15 +118,15 @@ policies:
|
||||
- `p=quarantine`
|
||||
- `p=reject`
|
||||
|
||||
`p=quarantine` and `p=reject` instruct the server that receives an email to quarantine that email
|
||||
or ignore it if the :abbr:`SPF (Sender Policy Framework)` and/or :abbr:`DKIM (DomainKeys Identified
|
||||
`p=quarantine` and `p=reject` instruct the server that receives an email to quarantine that email or
|
||||
ignore it if the :abbr:`SPF (Sender Policy Framework)` and/or :abbr:`DKIM (DomainKeys Identified
|
||||
Mail)` check fails.
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
@ -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,
|
||||
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
|
||||
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,
|
||||
Reporting, & Conformance)` and has defined one of these policies, the Odoo server cannot relay
|
||||
emails from this partner to the database users.
|
||||
|
||||
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.
|
||||
.. seealso::
|
||||
`DMARC.org is another great resource to learn about DMARC records.
|
||||
<https://dmarc.org/overview/>`_
|
||||
|
||||
.. _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
|
||||
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:
|
||||
|
||||
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`.
|
||||
.. seealso::
|
||||
`Using Mail-Tester to set SPF Records for specific carriers <https://www.mail-tester.com/spf/>`_
|
||||
|
@ -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
|
||||
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
|
||||
standard online Odoo database normally since it has already been preconfigured for email.
|
||||
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 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
|
||||
===========================
|
||||
|
||||
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.
|
||||
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
|
||||
Odoo.
|
||||
|
||||
.. warning::
|
||||
If no one in the company is used to managing email servers, Odoo Online and Odoo.sh are strongly
|
||||
recommended. Those Odoo hosting types' email systems work instantly and are monitored by
|
||||
professionals. Nevertheless, a company can use their own email server if they want to manage the
|
||||
email server's reputation themselves.
|
||||
If no one in the company is employed to manage email servers, Odoo Online and Odoo.sh are
|
||||
strongly recommended. In these Odoo hosting types email sending and receiving works instantly
|
||||
and is monitored by professionals. Nevertheless, a company can use their own email server if
|
||||
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::
|
||||
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-
|
||||
multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-
|
||||
c805d654b4c4>`_ to make it work.
|
||||
.. _email_servers/notifications:
|
||||
|
||||
Default notifications system
|
||||
============================
|
||||
|
||||
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
|
||||
========================
|
||||
|
||||
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
|
||||
:guilabel:`Outgoing Email Servers` and click :guilabel:`Create` to create a new outgoing mail
|
||||
server record in Odoo. Reference the SMTP data of the external email server. Once all the
|
||||
information has been filled out, click :guilabel:`Test Connection`.
|
||||
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 server
|
||||
record in Odoo. Reference the SMTP data of the external email server. Once all the information has
|
||||
been filled out, click :guilabel:`Test Connection`.
|
||||
|
||||
Here is a typical configuration for a G Suite server.
|
||||
|
||||
.. image:: email_servers/outgoing-server.png
|
||||
: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.
|
||||
.. seealso::
|
||||
- :doc:`/administration/maintain/google_oauth`
|
||||
- :doc:`/administration/maintain/azure_oauth`
|
||||
|
||||
.. note::
|
||||
If an `[AUTHENTICATION FAILED] Invalid credentials (Failure)` warning appears when
|
||||
:guilabel:`Test Connection` is clicked for a Gmail address, activate the :guilabel:`Less secure
|
||||
app access` option. A direct link can be `accessed here <https://myaccount.google.com/
|
||||
lesssecureapps?pli=1>`_.
|
||||
|
||||
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>`__.
|
||||
Ensuring the outgoing domain has :abbr:`SPF (Sender Policy Framework)`, :abbr:`DKIM (DomainKeys
|
||||
Identified Mail)` and :abbr:`DMARC (Domain-based Message Authentication, Reporting, &
|
||||
Conformance)` set up on the :abbr:`DNS (Domain Name System)` will improve deliverability. For
|
||||
more information see :doc:`email_domain`.
|
||||
|
||||
.. _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.
|
||||
|
||||
.. _email_communication/default_from:
|
||||
.. _email_communication/default:
|
||||
|
||||
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
|
||||
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.
|
||||
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.
|
||||
|
||||
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
|
||||
_Scheme>`_, SRS can be enabled to handle these situations. However, that is more complex and
|
||||
requires more technical knowledge that is not meant to be covered by this documentation.
|
||||
Access the :guilabel:`System Parameters` by activating :ref:`developer mode <developer-mode>` and
|
||||
going to :menuselection:`Settings --> Technical --> Parameters --> System Parameters` menu.
|
||||
|
||||
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
|
||||
--> Discuss`.
|
||||
|
||||
.. 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.
|
||||
- `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::
|
||||
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`.
|
||||
The `mail.default.from_filter` works only for `odoo-bin` configurations or the default Odoo email
|
||||
server, otherwise this parameter can be set using the `from_filter` field on `ir.mail_server`.
|
||||
|
||||
.. _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
|
||||
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
|
||||
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
|
||||
: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
|
||||
: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
|
||||
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
|
||||
mailings. Example: Use Postmark or SendinBlue for transactional emails, and Amazon SES, Mailgun or
|
||||
Sendgrid for mass mailings.
|
||||
Set up different dedicated servers for transactional and mass emails
|
||||
--------------------------------------------------------------------
|
||||
|
||||
.. 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
|
||||
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
|
||||
:menuselection:`Settings --> Technical --> Outgoing` email servers. There, create two email MTA
|
||||
server settings; one for the transactional emails and one for the mass mailing server. Make sure
|
||||
to give priority to the transactional server over the mass mailing server by providing a lower
|
||||
priority number for the transactional MTA server.
|
||||
: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 to
|
||||
give priority to the transactional server over the mass mailing server by providing a lower priority
|
||||
number for the transactional email 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
|
||||
server here selected for mass mails. Note that in this case, the domain's Sender Policy Framework
|
||||
(SPF) records must be set to include both transactional and mass mail servers.
|
||||
Choose the appropriate email server. With these settings, Odoo uses the server with the lower
|
||||
priority for transactional emails, and the server here selected for mass mails. Note that in this
|
||||
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 |