[ADD] email_communication: new documentation regarding general emailing

Creation of a new submenu under Applications/General for the Email communication.
Moved advanced of dicuss to this new submenu + adding of content regarding
frequently asked question in support.

Redirection has been done on other files pointing to Discuss/Advanced to match
the new folder email_communication.

Modified content in:
- Email servers: split and move configuration part under email_domain
- Email domain: covering information about SPF DKIM and DMARC configurations by JQU
- Email templates: (how to use the functions) by GOR
- Email common: answering frequently asked questions + common issues by ALA
This commit is contained in:
BVE 2021-06-23 15:27:39 +02:00
parent b423c066f9
commit fcc317615a
47 changed files with 622 additions and 194 deletions

View File

@ -25,8 +25,7 @@ elettronica sono i seguenti:
di posta elettronica certificata sono fornite dal tuo fornitore o dal
Ministero. Lo stesso server deve essere configurato come server che
gestisce tutta la corrispondenza mail in Odoo, per saperne di più si
può consultare la relativa :doc:`guida
</applications/productivity/discuss/advanced/email_servers>`.
puo consultare la relativa :doc:`guida </applications/general/email_communication/email_servers>`.
- Indirizzo PEC dellAzienda, tale indirizzo deve essere lo stesso
registrato presso lAgenzia delle Entrate per lutilizzo dei servizi

View File

@ -10,49 +10,40 @@ General
general/export_import_data
general/multi_companies
general/auth
general/tags
general/payment_acquirers
general/voip
general/calendars
general/in_app_purchase
general/unsplash
general/email_communication
**Odoo** is a suite of open source business apps that cover all your company needs: :doc:`CRM
<sales/crm>`, :doc:`eCommerce <websites/ecommerce>`, :doc:`accounting <finance/accounting>`,
:doc:`inventory <inventory_and_mrp/inventory>`, :doc:`point of sale <sales/point_of_sale>`,
:doc:`project management <services/project>`, etc. Its unique value proposition is to be at the same
time *very easy* to use and *fully integrated*.
.. _general/users-features:
This section of the documentation covers all functional aspects that aren't app-specific. You can
find, for example, information about:
Users and Features
==================
- :doc:`general/users` and :doc:`general/users/access_rights`, to configure each user correctly.
- :doc:`general/export_import_data`, to transfer data from and to other environments than Odoo or
update data.
- :doc:`general/payment_acquirers`, to allow your customers to pay with their favorite payment
method.
- :doc:`general/auth/google`, as an authentication method.
As the administrator of your database, you are responsible for its usage.
This includes the Apps you install as well as the number of users currently
in use.
.. important::
- | **Installing or uninstalling apps, managing users, etc., is up to you.**
| As the administrator of your database, you are responsible for its usage, as you know best
how your organization works. This includes the installation or uninstallation of :ref:`apps
<general/apps-modules>` as well as the number of :doc:`users <general/users>` currently in
use.
- | **Odoo apps have dependencies.**
| Installing some apps and features with dependencies may also install additional apps and
modules that are technically required, even if you won't actively use them.
- | **Always test app installation/removal on a duplicate of your database.**
| This way, you can know what app dependencies may be required or what data may be erased.
Odoo is many things (ERP, CMS, CRM application, e-Commerce backend, etc.)
but it is *not* a smartphone. You should apply caution when adding/removing
features (especially Apps) on your database since this may impact your
subscription amount significantly (or switch you from a free account
to a paying one on our online platform).
.. seealso::
- :ref:`Online Database management: Duplicate a database <duplicate_online>`
- :ref:`On-premises Database management: Duplicate a database <duplicate_premise>`
- `Submit a Support Ticket <https://www.odoo.com/help>`_
This section contains some information as to how you can manage your Odoo
instances. Before carrying any of these procedures, we **strongly** advise
to test them on a duplicate of your database first. That way, if something goes
wrong, your day-to-day business is not impacted.
.. _general/apps-modules:
.. note:: You can find guides on how to duplicate your databases both for
:ref:`online <duplicate_online>` and :ref:`on premise <duplicate_premise>`
installations.
Apps and modules
================
.. note:: If you have questions about the content of this section or if you
encounter an issue while carrying out these procedures, please contact
us through our `support form <https://www.odoo.com/help>`__.
You can :ref:`install <general/install>`, :ref:`upgrade <general/upgrade>` and :ref:`uninstall
<general/uninstall>` all apps and modules from the :menuselection:`Apps` dashboard.
@ -94,29 +85,103 @@ On some occasions, new improvements or app features are added to :doc:`supported
Go to :menuselection:`Apps`, click on the *dropdown menu* of the app you want to upgrade, then on
*Upgrade*.
=======
.. _general/uninstall:
Deactivating Users
------------------
Uninstall apps and modules
--------------------------
.. note:: Make sure you have sufficient **administrative rights** if
you want to change the status of any of your users.
Go to :menuselection:`Apps`, click on the *dropdown menu* of the app you want to uninstall, then on
*Uninstall*.
In your Odoo instance, click on **Settings**. You will have a section
showing you the active users on your database. Click on **Manage Users.**
+----------------+----------------+
| |settings| | |browse_users| |
+----------------+----------------+
You'll then see the list of your users.
.. image:: general/list_users.png
:align: center
.. note:: The pre-selected filter *Internal Users* shows your paying
users (different from the *Portal Users* which are free). If you
remove this filter, you'll get all your users (the ones you pay for
and the portal ones)
In your list of users, click on the user you want to deactivate. As soon
as you are on the userform, click on the Action drop down menu, and
then click on Archive.
.. image:: general/deactivate_user.png
:align: center
The user is now deactivated.
.. danger:: **Never** deactivate the main user (*admin*)
Uninstalling Apps
-----------------
.. warning:: Make sure you first test what you are about to do on a
:ref:`duplicate <duplicate_online>` of your database before making any
changes (*especially* installing/uninstalling apps).
In your Odoo instance click on **Settings**; in this app, you will be
able to see how many applications you have installed. Click on **Browse
Apps** to access the list of your installed applications.
+----------------+----------------+
| |settings| | |browse_apps| |
+----------------+----------------+
In your applications' dashboard, you will see all the icons of your
applications. Click on the application you want to uninstall. Then, on
the form of the application, click on **Uninstall**.
.. image:: general/uninstall.png
:align: center
:align: center
Some apps have dependencies, meaning that one app requires another. Therefore, uninstalling one app
may uninstall multiple apps and modules. Odoo warns you which dependant apps and modules are
affected by it.
.. danger:: Some applications have dependencies, like Invoicing, eCommerce,
etc. Therefore, the system will give you a warning message to advise
you of what is about to be removed. If you uninstall your application,
all its dependencies will be uninstalled as well (and the data in them
will permanently disappear). If you are sure you still want to uninstall
it, then click **Confirm**.
Last, after having checked the warning message (if any), click **Confirm**.
.. image:: general/uninstall_deps.png
:align: center
:align: center
To complete the uninstallation, click on *Confirm*.
You have finished uninstalling your application.
.. danger::
Uninstalling an app also uninstalls all its dependencies and permanently erases their data.
Good to know
------------
* **Uninstalling apps, managing users, etc. is up to you**: no one else can
know if your business flow is broken better than you. If we were to uninstall
applications for you, we would never be able to tell if relevant data had
been removed or if one of your business flow was broken because we *do not
know how you work* and therefore cannot validate these kinds of operations.
* **Odoo Apps have dependencies**: this means that you may need to install
modules that you do not actively use to access some features of Odoo
you might need. For example, the Website Builder app is needed to be
able to show your customer their Quotes in a web page. Even though you
might not need or use the Website itself, it is needed for the Online
Quotes feature to work properly.
* **Always test app installation/removal on a duplicate** (or on a
free trial database): that way you can know what other apps may
be required, etc. This will avoid surprises when uninstalling
or when receiving your invoices.
.. |settings| image:: general/settings_app.png
.. |browse_apps| image:: general/browse_apps.png
.. |browse_users| image:: general/browse_users.png
.. _developer-mode:
@ -125,8 +190,8 @@ Activate the developer mode (debug mode)
The developer mode (or debug mode) gives you access to extra and advanced tools.
Through the Settings
--------------------
Through the Settings application
--------------------------------
Go to :menuselection:`Settings --> Activate the developer mode`.
@ -181,4 +246,4 @@ As of Odoo 12.0, 13.0 or above, there is no more complex configuration to enable
notifications in the mobile app.
Simply go to :menuselection:`Settings --> General Settings --> Odoo Cloud Notification (OCN)`
and make sure that **Push Notifications** is checked.
and make sure that **Push Notifications** is checked.

View File

@ -0,0 +1,11 @@
===================
Email Communication
===================
.. toctree::
:titlesonly:
email_communication/email_servers
email_communication/email_domain
email_communication/email_template
email_communication/email_common

View File

@ -0,0 +1,110 @@
======================================================
Common issues and frequent questions related to Emails
======================================================
This document contains an explanation of the most recurring mailing concerns.
We will start by addressing issues of outgoing emails (ex: my client has not received my email), and then, of incoming emails (ex: I do not receive responses from my customers in the database).
Outgoing emails
===============
What do you have to check if your email is not sent?
----------------------------------------------------
The first indicator showing you that the email has not been sent is the red envelope showing next to the date & hour of the message.
If you click on it, you will see why the message was not sent.
.. image:: email_common/red_envelop.png
:align: center
:alt: Red envelop displayed in chatter
Common error messages
~~~~~~~~~~~~~~~~~~~~~
You reached your daily limit:
*****************************
.. image:: email_common/email_limit.png
:align: center
:alt: Warning in Odoo upon email limit reached
Each email service provider has its own email sending limits. The limits may be daily, hourly, and sometimes also per minute. And this is the same for Odoo. That limit is in place to prevent our e-mail servers from being blacklisted.
Here are the default limits for new databases:
- 200 emails/day for Odoo Online and Odoo.sh databases with an active subscription,
- 50 emails/day for one-app free and trial databases,
- in case of migration, your daily limit might be reset to 50 emails a day.
In case you hit the limit, you can:
- either ask our support team to increase your daily limit (we will analyze your situation: how many users in your database, which apps, your bounce ratio…). You can contact the `support <https://www.odoo.com/help>`_,
- either use your own outgoing email server and you are independent of Odoos mail limit. In that case, here is our documentation about how to configure it: * How to Use my Mail Server to Send and Receive Emails in Odoo,
- either wait around 11pm UTC for the reset and click on the retry button of the emails: The :ref:`Developer mode <developer-mode>` must be activated. Then, go to :menuselection:`Settings --> Technical --> Emails`
.. image:: email_common/email_retry_technical.png
:align: center
:alt: Retry button of an emails
Beware: the daily limit is global to your database and can rise quite fast! You have to know that by default an internal message, a notification, a note, … count as an email in your daily limit if it notify someone.
You can mitigate this by receiving your notifications in Odoo (click on your user on the top right corner of the screen) :menuselection:`My Profile --> Preferences` and choose “Handle notifications within Odoo” (instead of by email).
.. image:: email_common/settings_handle_notif.png
:align: center
:alt: Handling notifications in Odoo
SMTP Error
**********
You can find out why an email wasn't transmitted successfully by reviewing the Simple Mail Transport Protocol (SMTP) error messages. SMTP is a protocol for email format and transmission on the Internet, and the error messages generated by email services are helpful tools for diagnosing and troubleshooting email problems.
No Error
********
Odoo is not always capable of providing the information on the reason it failed. The different providers implement a personalized policy of the bounce emails and it is not always possible for odoo to interpret it correctly.
If you have this problem on a recurring basis with the same client or the same domain, please do not hesitate to contact support for help in finding a reason.
Note: in such case, one of the most common reasons is the SPF / DKIM configuration problem
Why is my email sent late?
**************************
It may happen that you schedule a email campaign but it is not sent on time. You should know that we use the concept of cron for emails that we consider as not urgent (Newsletters concept such as mass mailing, marketing automation, events). The system utility **cron** can be used to schedule programs to run automatically at predetermined intervals. We use that policy in order to avoid cluttering the mail servers and prioritize the communication.
The emails considered as urgent (communication from a person to another one such as Sales Order, Invoices, Purchase Orders…) are sent directly.
.. image:: email_common/email_scheduled_later.png
:align: center
:alt: Email scheduled to be sent later.
By default, the Mass Mailing cron runs every 60 minutes. So, you should wait an hour before the campaign is actually sent.
Incoming emails
===============
When you have an issue with incoming emails, there might not have indication per say in Odoo. This is the client who tries to contact a database who will get a bounce (most of the time 550: mailbox unavailable).
Emails are not received
-----------------------
Depending on the platform you are using:
- The **Odoo.sh** users can find their live logs on the folder ~/logs/.
- The folder ~/logs/ (preferably access by the command line) of an Odoo.sh contains a list of files containing logs of the database. The log files are created everyday at 4:00 UTC time. The two last days are not zipped, where the older are zipped in order to gain space. The naming of the files are decremental, which means that the file named .1 is the one from yesterday and the file .2 is the day before yesterday. See the following Odoo.sh documentation about `logs <https://www.odoo.com/documentation/master/administration/odoo_sh/getting_started/branches.html?#logs>`_. Use the command ``grep`` and ``zgrep`` (for the zipped) to navigate through the files.
- The **SaaS** users wont have access to their logs. However you can still submit a ticket, if you have a recurring issue with the same client or domain.
Get helped from support
-----------------------
In order to get helped efficiently, please provide as much information as possible. Here is a list of what can be helpful:
- The **EML** of the file, stating for *Electronic Mail*, is the email containing all the technical information requires for an investigation. The documentation of your own provider might help you on how to get your EML files. Once you get the EML of the email, adding it in the attachment of your ticket is the most efficient way for us to investigate. The support will mainly focus on redundant issues.
- The exact flow you are doing in order to normally receive those emails in Odoo. Here is examples of question that can be useful to provide answer:
- Is this simply a reply from an email going out from Odoo ?
- Are you using an incoming email server or somehow redirecting?
- Can you provide us with an example of an email that has been correctly forwarded ?
- Providing answers to the following questions:
- Is it a generic issue or is it specific to a use case? If yes, which one exactly?
- Is it working as expected? In case the email is sent using Odoo, the bounce email should reach the Odoo database and display a red envelope. To be able to investigate, please refer to the subsection envelope is red.

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,114 @@
================================================
Sending emails with Odoo using your email domain
================================================
Records in Odoo (a CRM opportunity, a sales order, an invoice ...) have a discussion thread, called chatter.
When you post 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 is displayed in the chatter, and Odoo relays the reply to the followers.
Emails from your users to partners (customers, vendors) are sent from the email address of your users doing the action. Similarly, emails from partners to users are sent from the email address of the partners. This allows you to recognize at a glance who sent an email relayed by Odoo.
.. note:: Odoo is subject to a daily email limit to prevent abuse. See our FAQ<linkALA>
In case your are using your own domain name, it is recommended that you configure your domain name to ensure that emails from your users reach your partners, rather than being considered spam or being completly rejected.
For the same reason, we recommend that you always give your users an email address from a domain you manage, rather than a generic email address (gmail.com, outlook.com, etc.).
.. _email_domain/spf-compliant:
Be SPF-compliant
================
The Sender Policy Framework (SPF) protocol allows the owner of a domain name to specify which servers are allowed to send email from that domain.
When a server receives an incoming email, it checks whether the IP address of the sending server is on the list of allowed IPs according to the SPF record of the sender.
.. note:: The SPF 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 following documentation :ref:`inbound_messages`
The SPF policy of a domain is set using a TXT record.
How to create or modify a TXT record depends on the provider hosting the DNS zone of your domain name.
Your new SPF record can take up to 48 hours to go into effect,
but this usually happens more quickly.
.. note:: Adding more than one SPF record for a domain can cause problems
with mail delivery and spam classification. Instead, we recommend using
only one SPF record by modifying it to authorize Odoo.
.. seealso:: Here is a link to the documentation for some common providers:
- `OVH <https://docs.ovh.com/fr/domains/editer-ma-zone-dns/>`_
- `GoDaddy <https://www.godaddy.com/help/add-a-txt-record-19232>`_
- `NameCheap <https://www.namecheap.com/support/knowledgebase/article.aspx/317/2237/how-do-i-add-txtspfdkimdmarc-records-for-my-domain/>`_
- `CloudFlare <https://support.cloudflare.com/hc/en-us/articles/360019093151>`_
- `Google Domains <https://support.google.com/domains/answer/3290350?hl=en>`_
- `Azure DNS <https://docs.microsoft.com/en-us/azure/dns/dns-getstarted-portal>`_
- `Others <https://www.mail-tester.com/spf/>`_
In order for the verification to work properly, each domain can only have one SPF record.
If your domain name does not yet have an SPF record, the content of the record to create is as follows:
``v=spf1 include:_spf.odoo.com ~all``
If your domain name already has an SPF record, you need to update this record (and do not create a new one).
For example, if your TXT record is :
``v=spf1 include:_spf.google.com ~all``
You need to edit it to add ``include:_spf.odoo.com`` :
``v=spf1 include:_spf.odoo.com include:_spf.google.com ~all``
You can check if your SPF record is valid with a free tool like `MXToolbox <https://mxtoolbox.com/spf.aspx>`_.
Enable DKIM
===========
DKIM (DomainKeys Identified Mail) allows you to authenticate your emails with a digital signature.
When sending an email, the Odoo server includes a unique DKIM signature in the headers. The recipient's server decrypts this signature using the DKIM record in your domain name. If the signature and the key contained in the record match, this guarantees that your message is authentic and has not been altered during transport.
To enable DKIM, you must add a CNAME record to the DNS zone of your domain name:
``odoo._domainkey IN CNAME odoo._domainkey.odoo.com.``
For example, if your domain name is mycompany.com, you need to create a subdomain odoo._domainkey.mycompany.com whose canonical name is odoo._domainkey.odoo.com.
How to create or modify a CNAME record depends on the provider hosting the DNS zone of your domain name.
.. seealso:: Here is a link to the documentation for some common providers:
- `OVH <https://docs.ovh.com/fr/domains/editer-ma-zone-dns/>`_
- `GoDaddy <https://www.godaddy.com/help/add-a-cname-record-19236>`_
- `NameCheap <https://www.namecheap.com/support/knowledgebase/article.aspx/317/2237/how-do-i-add-txtspfdkimdmarc-records-for-my-domain/>`_
- `CloudFlare <https://support.cloudflare.com/hc/en-us/articles/360019093151>`_
- `Google Domains <https://support.google.com/domains/answer/3290350?hl=en>`_
- `Azure DNS <https://docs.microsoft.com/en-us/azure/dns/dns-getstarted-portal>`_
You can check if your DKIM record is valid with a free tool like `DKIM Core <https://dkimcore.org/tools/>`_. If a selector is asked, enter 'Odoo'.
Check your DMARC policy
=======================
DMARC (Domain-based Message Authentication, Reporting & Conformance) is a protocol that unifies SPF and DKIM. The instructions contained in the DMARC record of a domain name tell the destination server what to do with an incoming email that fails the SPF and/or DKIM check.
There are three DMARC policies:
#. ``p=none``
#. ``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 SPF and/or DKIM check fails.
You can check the DMARC record of a domain name with a tool like `MXToolbox <https://mxtoolbox.com/DMARC.aspx>`_.
If your domain name uses DMARC and has defined one of these policies, it is therefore imperative to be SPF compliant or to enable DKIM.
.. danger:: Yahoo or AOL are examples of email providers with a DMARC policy set to ``p=reject``. We strongly advise against using an @yahoo.com or @aol.com address for your users. Using such emails can lead to missing notification of not receiving emails at all.
If one of your partners, customer or vendor, uses DMARC and has defined one of these policies, the Odoo server cannot relay emails from this partner to your users.
You need to `handle user notifications in Odoo <https://www.odoo.com/documentation/14.0/applications/productivity/discuss/overview/get_started.html?highlight=notification#choose-your-notifications-preference>`_, or replace the email address of the partner with a default email address.

View File

@ -1,6 +1,6 @@
============================================================
How to Use my Mail Server to Send and Receive Emails in Odoo
============================================================
=============================================================
How to use my Email Server to send and receive Emails in Odoo
=============================================================
If you are a user of Odoo Online or Odoo.sh...
==============================================
@ -17,23 +17,22 @@ Scope of this documentation
This document is **mainly dedicated to Odoo on-premise users** 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>`__ & `Odoo.sh <https://www.odoo.sh>`__.
unlike `Odoo Online <https://www.odoo.com/trial>`_ & `Odoo.sh <https://www.odoo.sh>`_.
.. warning::
If no one in your company is used to manage email servers, we strongly recommend that
you opt for those Odoo hosting solutions. Their email system
works instantly and is monitored by professionals.
Nevertheless you can still use your own email servers if you want
to manage your email server's reputation yourself.
You will find here below some useful
You will find here some useful
information on how to integrate your own email solution with Odoo.
.. note:: Office 365 email servers don't easily allow to send 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.
.. note::
Office 365 email servers don't easily allow to send 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.
How to manage outbound messages
===============================
@ -44,7 +43,7 @@ Once all the information has been filled out, click on *Test Connection*.
Here is a typical configuration for a G Suite server.
.. image:: media/outgoing_server.png
.. image:: email_servers/outgoing_server.png
:align: center
Then set your email domain name in the General Settings.
@ -72,68 +71,29 @@ You can use an G Suite server for any Odoo hosting type.
To do so you need to setup the SMTP relay service. The configuration steps are explained in
`Google documentation <https://support.google.com/a/answer/2956491?hl=en>`__.
.. _discuss-email_servers-spf-compliant:
Be SPF-compliant
----------------
In case you use SPF (Sender Policy Framework) to increase the deliverability
of your outgoing emails, don't forget to authorize Odoo as a sending host in your
domain name settings. Here is the configuration for Odoo Online:
* If no TXT record is set for SPF, create one with following definition:
v=spf1 include:_spf.odoo.com ~all
* In case a SPF TXT record is already set, add "include:_spf.odoo.com".
e.g. for a domain name that sends emails via Odoo Online and via G Suite it could be:
v=spf1 include:_spf.odoo.com include:_spf.google.com ~all
Find `here <https://www.mail-tester.com/spf/>`__ the exact procedure to
create or modify TXT records in your own domain registrar.
Your new SPF record can take up to 48 hours to go into effect,
but this usually happens more quickly.
.. note:: Adding more than one SPF record for a domain can cause problems
with mail delivery and spam classification. Instead, we recommend using
only one SPF record by modifying it to authorize Odoo.
Allow DKIM
----------
You should do the same thing if DKIM (Domain Keys Identified Mail)
is enabled on your email server. In the case of Odoo Online & Odoo.sh,
you should add a DNS "odoo._domainkey" CNAME record to
"odoo._domainkey.odoo.com".
For example, for "foo.com" they should have a record "odoo._domainkey.foo.com"
that is a CNAME with the value "odoo._domainkey.odoo.com".
Restriction
-----------
Please note that the port 25 is blocked for security reasons. Try using 587, 465 or 2525.
Please note that the port 25 is blocked for security reasons on our SaaS and Odoo.sh plateform. Try using 465, 587 or 2525.
Choose allowed "From" email addresses
Use a default "From" email addresses
-------------------------------------
Sometimes, an email's "From" (outgoing) address can belong to a different
domain, and that can be a problem.
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 address *mary@customer.example.com* responds to
a message, Odoo will try to redistribute that same email to other subscribers
in the thread. But if the domain *customer.example.com* forbids that kind of
usage for security (kudos for that), the Odoo's redistributed email would get
rejected by some recipients' mail servers.
a message, Odoo will try to redistribute that same email to other subscribers in the thread. But if the domain *customer.example.com* forbids that kind of
usage for security, the Odoo's redistributed email would get rejected by some recipients' mail servers.
To avoid those kind of problems, you should make sure all emails use a "From"
address from your authorized domain.
To avoid those kind of problems, you should make sure all emails use a "From" address from your authorized domain.
If your MTA supports `SRS (Sender Rewriting Scheme)
<https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme>`_, you can enable it
to handle these situations. However, that is more complex and requires more
technical knowledge that is not meant to be covered by this documentation.
<https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme>`_, you can enable it to handle these situations. However, that is more complex and requires more technical knowledge that is not meant to be covered by this documentation.
Instead, you can also configure Odoo to do something similar by itself:
#. Set your domain name in the General Settings.
.. image:: media/alias_domain.png
.. image:: email_servers/alias_domain.png
:align: center
#. In developer mode, go to :menuselection:`Settings --> Technical -->
@ -151,7 +111,7 @@ Instead, you can also configure Odoo to do something similar by itself:
that should be used in those cases (such as
``outgoing@mycompany.example.com``).
.. _discuss/email_servers/inbound_messages:
.. _inbound_messages:
How to manage inbound messages
==============================
@ -187,7 +147,7 @@ alias in your mail server.
(catchall@, bounce@, sales@, etc.).
* Set your domain name in the General Settings.
.. image:: media/alias_domain.png
.. image:: email_servers/alias_domain.png
:align: center
* If you use Odoo on-premise, create an *Incoming Mail Server* in Odoo for each alias.
@ -196,7 +156,7 @@ alias in your mail server.
Leave the *Actions to Perform on Incoming Mails* blank. Once all the
information has been filled out, click on *TEST & CONFIRM*.
.. image:: media/incoming_server.png
.. image:: email_servers/incoming_server.png
:align: center
* If you use Odoo Online or Odoo.sh, We do recommend to redirect incoming messages
@ -214,7 +174,7 @@ alias in your mail server.
Then go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters`
to customize the aliases (*mail.catchall.alias* & * mail.bounce.alias*).
.. image:: media/system_parameters.png
.. image:: email_servers/system_parameters.png
:align: center
.. note:: By default inbound messages are fetched every 5 minutes in Odoo on-premise.
@ -228,7 +188,7 @@ alias in your mail server.
Set up different dedicated servers for transactional and mass mails
===================================================================
Odoo's e-mail server has the capability of sending 200 e-mails per day on Odoo SH Cloud Platform.
Odoo is subject to a daily email limit to prevent abuse. See :ref:`here <daily_limit_mail>`
However, if needed, you can use a separate Mail Transfer Agent (MTA) servers for transactional
e-mails and mass mailings.
Example: use Odoo's own mail server for transactional e-mails, and Sendgrid, Amazon SES, or Mailgun

View File

@ -0,0 +1,240 @@
===============
Email Templates
===============
We all know writing good emails is vital to get a high response rate, but you do not want to
rewrite the same structure every time, do you? That is where email templates come in.
Without the need to rewrite the entire email structure every time, you save time to focus on
the content. Multiple templates also let you deliver the right message to the right audience,
improving their overall experience with the company.
Enable it and understand a few concepts
=======================================
The :doc:`Developer mode </applications/general/developer_mode>` must be activated. Then, go to
:menuselection:`Settings --> Technical --> Templates`. A view of the existing templates is shown.
.. warning::
**It is highly recommended not to change the content in existing templates unless the user has
prior knowledge about placeholders.**
To add a new one, click on *Create* and choose the type of document this template is used with. In
the example below, the template would be sent to job applicants.
.. image:: email_template/newtemplate.png
:align: center
:alt: New email template form in Odoo
| Under *Email Configuration*, fields such as *From*, *To (Emails)*, *To (Partners)*, require
placeholders. If the *From* field is not set, the default value is the authors email alias, if
configured, or email address.
| Under *Advanced Settings*, if an *Outgoing Mail Server* is not set, the one with the highest
priority is used.
| The option *Auto Delete* permanently deletes the emails after they are sent, saving space in your
database.
Writing content including placeholder expressions
-------------------------------------------------
A placeholder is a string of characters that temporarily takes the place of the final data. With email templates, for example, placeholders let you put dynamic content in order to personalize the email for the recipient.
A common use is to use it to indicate the name of the recipient in the newsletter so that each recipient gets a personalized newsletter.
Placeholders and more specifically fields that are available for a template will depend on the template you modify, one way to see the fields that are available is to check the Dynamic Placeholder Generator tab.
:: _dynamic_placeholder_generator:
Under the tab *Dynamic Placeholder Generator*, look for the *Field* you would like to use.
.. image:: email_template/placeholders.png
:align: center
:alt: View of the dynamic placeholder generator tab under a new template in Odoo
Next, copy the *Placeholder Expression* and paste it in the *Body* of the email, under the *Content*
tab, using - essentially - the *Code View*.
.. image:: email_template/codeview.png
:align: center
:alt: View of the body code view under the content tab in Odoo
Deactivate the *Code View* option by simply clicking on it again, and easily design the message.
Click on *Preview* to check how the email looks before sending it.
.. image:: email_template/preview.png
:align: center
:alt: View of the content with the standard body view in Odoo
Using functions with placeholders
---------------------------------
Functions can be used along with your placeholders in order to format the data as you'd like within your mail templates, for example, the time format can be changed using a function such as ``format_time``.
In order to use functions, you have to know what are the available fields to format. To know that, you have to check the fields (the properties) of the object that are available to be used.
How to check the fields (properties) available on the object?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To check the **fields available**, click on the link next to Applies to. For the example we use the Portal: new user template, so we click on Portal user Config.
.. image:: email_template/apply_to_model.jpg
:align: center
:alt: Template is capable of using the field of the defined Models.
By clicking on the link, you are redirected to the model, in this case the ``Portal user Config`` model that lists all the fields that you can use within your mail template.
.. image:: email_template/fields_of_model.png
:align: center
:alt: Existing fields of a model
As a side note, you can also see the fields that are available by accessing the dynamic placeholder generator, as described previously :ref:`here <dynamic_placeholder_generator>`.
See below an example with the email field that was added in the template and its result as well as some other placeholders already present by default.
.. image:: email_template/field_and_rendering.jpg
:align: center
:alt: Adding a field on a template and see the result
Using fields with functions
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now that you know the *fields* that can be used, you can use one of them with a function. For this example, we add the creation date, *create_date* field to the body of the template Portal: new user along with the ``format_date`` function so that the user knows when he was invited.
.. image:: email_template/format_date_functions_example.jpg
:align: center
:alt: Example of the format_date on a create_date field
As you can see we use the placeholder *${}* with the ``format_date`` function which uses as a parameter the field create_date available on the current object, this gives the following line of code ``${format_date(object.create_date)}``.
.. warning:
It's really important to check that the preview is working, if It's broken your template might appear totally blank when previewing it. We also recommend not changing the content in existing templates unless you have prior knowledge, we highly recommend duplicating the template and apply your changes within this one.
Find below the result of the e-mail received in the recipient's mailbox with the modifications applied.
.. image:: email_template/rendering_format_date_function.jpg
:align: center
:alt: Rendering of the format_date function on a create_date field
Still by using the ``format_date`` function, you have the possibility to adapt the format of the date just in a specific email by specifying the formatting of the date as a second parameter, if not specified, the format used by default is the one defined in the settings of the language, more information on how to access these parameters can be found :ref:`here <usable_functions>`.
In order to adapt the date format, the piece of code used in the above example ``${format_date(object.create_date)}`` becomes ``${format_date(object.create_date, date_format='dd -- MM -- YYYY')}`` where dd is the day, MM the month and YYYY the year.
Here is the result once the function is adapted in the template.
.. image:: email_template/adapted_rendering_format_date_function.jpg
:align: center
:alt: Adapted rendering of the format_date
Functions used by default within email templates
************************************************
To format your data, many functions can be used, here are some examples.
.. note::
**This list of functions is not exhaustive**, meaning that all functions that are available aren't listed in the below list, for more functions, we invite you to check the `babel <http://babel.pocoo.org/en/latest/api/dates.html>`_ documentation, last but not least, modifications on the templates are considered as customization and isnt covered by our support.
For the following examples, we will introduce mostly some date functions. By default, the format of the date used is the one defined in the settings of the language.
These settings can only be accessed when the developer mode is enabled, once developer is enabled go to :menuselection: `Settings --> Translations --> Languages` click on one of the languages to see all the settings such as the time format or date format used by the language.
**format_date()** - formats the date (without the time).
Can be found on the template `Purchase Order: Send PO`:
.. image:: email_template/po_template_format_date.jpg
:align: center
:alt: Code of the format_date on existing template Purchase
The result will look like this:
.. image:: email_template/po_template_format_date_rendering.jpg
:align: center
:alt: Rendering of the format_date on existing template Purchase
**format_datetime()** - formats the datetime, defining a specific timezone, in this case Central European Time (CET).
Can be found on the template `Event: Registration`.
.. image:: email_template/event_reg_template_format_datetime.jpg
:align: center
:alt: Code of the format_datetime on existing template Event
The result will look like this:
.. image:: email_template/event_reg_template_format_datetime_rendering.jpg
:align: center
:alt: Rendering of the format_datetime on existing template Event
**format_time()** - Similar to the format_datetime function except It's used only for the time, not a date.
**format_amount()** - Formats a number, an amount to display the currency depending on the display setting that has been defined on the currency (the debug mode must be activate to see this feature) :menuselection: `Accounting --> Configuration --> Currencies`(before or after the amount depending on the convention).
.. image:: email_template/so_template_format_amount.jpg
:align: center
:alt: Code of the format_amount on existing template Sales Order
Which will look like this:
.. image:: email_template/so_template_format_amount_rendering.jpg
:align: center
:alt: Rendering of the format_amount on existing template Sales Order
Defining a default reply to on your mail template
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Although the field *reply to* is available within the mail templates, **this field is only used for mass mailing**mode, this means when sending templates on what we call bulk emailing. You can send emails in bulk in almost every app that has a list view, select the records you want and click on the action button. If you have an option to send an email, you will see a mail composer with possible values to define:
.. image:: email_template/composer_mass_mailing_quotations.png
:align: center
:alt: Composer in mass mailing mode after selecting multiple quotations.
You can also defined them by default on the template:
.. image:: email_template/reply_to_template_sales.jpg
:align: center
:alt: Reply-to field on template.
Because of this, setting a value in this field is useless as the value defined will be totally ignored. The default *reply-to* value is the default catchall email address to ensure a communication between your customer and your Odoo database. For more information about the way the catchall works, please click `here <https://www.odoo.com/documentation/12.0/applications/productivity/discuss/email_servers.html#how-to-manage-inbound-messages>`_.
Transactional emails and corresponding URL for each company
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When using Odoo, multiple events trigger the sending of automated emails, these emails are known as transactional emails and sometimes contain links pointing to your Odoo database.
By default, links generated by the database use the dynamic web.base.url key defined in the system parameters. More information about this parameter can be found `here <https://www.odoo.com/documentation/14.0/applications/websites/website/publish/domain_name.html#how-to-make-sure-that-all-my-urls-use-my-custom-domain>`_.
If the website application isn't installed, the web.base.url key will always be the default parameter used to generate all the links.
Its important to know that this key can only have a single value, meaning that in a multi-website/company database environment, even if you have a specific domain name for each website, the links generated to share a document or within a transactional email might remain the same, whatever the website/company related to the sending of the email/document.
This is not always the case as some Odoo applications have a link established in the database with the website application, meaning that in this case, if a specific domain is defined for the websites, the URL generated in the email template will use the domain defined on the corresponding website of the company.
For example:
A document shared using the documents application will always use the web.base.url key, as the document shared isn't associated with any particular website. Meaning that the URL will always be the same (the web.base.url key value) , whatever the company it's shared from, this is a known limitation!
On the other hand, sales orders made by a customer on one of your Odoo e-commerce websites have a link established with the website from which the order was made. As a result, the e-mail sent for the sales orders uses the domain name defined for the corresponding website to generate the links.
For more information about how to configure your domains, we invite you to click `here <https://www.odoo.com/documentation/14.0/applications/websites/website/publish/domain_name.html>`_.
Updating translations within email templates
********************************************
Email templates are automatically translated, changing the translations shouldnt be necessary, however if for a specific reason youd like to change some of the translations, this can be done.
Like any modification in the code, keep in mind that modifications that arent done correctly (for example modifications leading to bad syntax) can break the template, as a result, the template will appear blank.
In order to edit your translations, follow these steps from the template.
#. Click the edit button then on the language button
.. image:: email_template/edit_language_template.jpg
:align: center
:alt: Edit the language of a template
#. A pop-up window with the different languages installed on the database will be displayed. From here, editing the translations will be possible, don't forget to hit the save button to preserve your changes.
.. image:: email_template/translation_body.jpg
:align: center
:alt: Translation of the body of the Application template in the different languages installed.

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -82,6 +82,6 @@ Manage campaigns
menu within those applications. All of this is possible because the applications work integrated.
.. seealso::
- :doc:`/applications/productivity/discuss/advanced/email_servers`
- :doc:`/applications/general/email_communication/email_servers`
- :doc:`../../social_marketing/overview/campaigns`

View File

@ -77,4 +77,4 @@ To set up *SMS Templates*, activate the :ref:`developer mode <developer-mode>`,
.. seealso::
- :doc:`../../social_marketing/overview/campaigns`
- :doc:`/applications/productivity/discuss/advanced/email_template`
- :doc:`/applications/general/email_communication/email_servers`

View File

@ -1,5 +1,3 @@
:nosearch:
=======
Discuss
=======
@ -7,5 +5,4 @@ Discuss
.. toctree::
:titlesonly:
discuss/overview
discuss/advanced
discuss/overview

View File

@ -1,12 +0,0 @@
:nosearch:
========
Advanced
========
.. toctree::
:titlesonly:
:glob:
advanced/email_servers
advanced/email_template

View File

@ -1,59 +0,0 @@
===============
Email Templates
===============
We all know writing good emails is vital to get a high response rate, but you do not want to
rewrite the same structure every time, do you? That is where email templates come in.
Without the need to rewrite the entire email structure every time, you save time to focus on
the content. Multiple templates also let you deliver the right message to the right audience,
improving their overall experience with the company.
Enable it and understand a few concepts
=======================================
The :ref:`developer mode <developer-mode>` must be activated. Then, go to :menuselection:`Settings
--> Technical --> Templates`. A view of the existing templates is shown.
.. warning::
**It is highly recommended not to change the content in existing templates unless the user has
prior knowledge about placeholders.**
To add a new one, click on *Create* and choose the type of document this template is used with. In
the example below, the template would be sent to job applicants.
.. image:: media/newtemplate.png
:align: center
:alt: New email template form in Odoo
| Under *Email Configuration*, fields such as *From*, *To (Emails)*, *To (Partners)*, require
placeholders. If the *From* field is not set, the default value is the authors email alias, if
configured, or email address.
| Under *Advanced Settings*, if an *Outgoing Mail Server* is not set, the one with the highest
priority is used.
| The option *Auto Delete* permanently deletes the emails after they are sent, saving space in your
database.
Writing content including placeholder expressions
-------------------------------------------------
Under the tab *Dynamic Placeholder Generator*, look for the *Field* you would like to use.
.. image:: media/placeholders.png
:align: center
:alt: View of the dynamic placeholder generator tab under a new template in Odoo
Next, copy the *Placeholder Expression* and paste it in the *Body* of the email, under the *Content*
tab, using - essentially - the *Code View*.
.. image:: media/codeview.png
:align: center
:alt: View of the body code view under the content tab in Odoo
Deactivate the *Code View* option by simply clicking on it again, and easily design the message.
Click on *Preview* to check how the email looks before sending it.
.. image:: media/preview.png
:align: center
:alt: View of the content with the standard body view in Odoo

View File

@ -96,4 +96,4 @@ sidebar and on the *Messaging menu*.
.. seealso::
- :doc:`/applications/services/project/tasks/collaborate`
- :doc:`team_communication`
- :doc:`../advanced/email_servers`
- :doc:`/applications/general/email_communication/email_servers`

View File

@ -47,7 +47,7 @@ For every Trigger option, **conditions** can be applied, such as:
- *Create New Record*: a new record with new values is created.
- *Update a Record*: updates the record that triggered the action.
- *Execute several actions*: defines an action that triggers other server actions.
- *Send Email*: an automatic :doc:`email <../../discuss/advanced/email_template>` is sent.
- *Send Email*: an automatic :doc:`email </applications/general/email_communication/email_template>` is sent.
- *Add Followers*: :doc:`followers </applications/services/project/tasks/collaborate>` are notified of changes in
the task.
- *Create Next Activity*: creates an activity such as: *Call*, *Email*, *Reminder*.

View File

@ -86,4 +86,4 @@ the Kanban view.
.. seealso::
- :doc:`sla`
- :doc:`../advanced/close_tickets`
- :doc:`/applications/productivity/discuss/advanced/email_servers`
- :doc:`/applications/general/email_communication/email_servers`

View File

@ -12,7 +12,7 @@ Set up an incoming email server
| On the *Settings* application, enable *External Email Servers* and define the incoming email
alias you would like to use.
| **For more information**: :doc:`/applications/productivity/discuss/advanced/email_servers`
| **For more information**: :doc:`/applications/general/email_communication/email_servers`
Configure the email alias in your project
-----------------------------------------

View File

@ -117,4 +117,4 @@ Google indexes your website under both names. This is a limitation of the Odoo c
.. seealso::
* :doc:`/applications/productivity/discuss/advanced/email_servers`
* :doc:`/applications/general/email_communication/email_servers`

View File

@ -215,3 +215,6 @@ applications/general/odoo_basics/users.rst applications/general/users.rst
applications/general/odoo_basics/choose_language.rst applications/general/users/language.rst # odoo_basics/choose_language -> users/language
applications/finance/sign/overview/signature_validity.rst applications/finance/sign.rst #sign/overview/signature_validity -> sign/*
applications/productivity/discuss/advanced/email_servers.rst applications/general/email_communication/email_servers.rst #
applications/productivity/discuss/advanced/email_template.rst applications/general/email_communication/email_template.rst #