[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

closes odoo/documentation#1092

Signed-off-by: Vergote Baptiste (bve) <bve@odoo.com>
This commit is contained in:
BVE 2021-06-23 13:27:39 +00:00 committed by bve-odoo
parent f6c1723fe0
commit cf6af904f9
48 changed files with 706 additions and 146 deletions

View File

@ -44,4 +44,4 @@ For Exim
.. tip::
If you don't have access/manage your email server, use :ref:`inbound messages
<discuss/email_servers/inbound_messages>`.
<email_communication/inbound_messages>`.

View File

@ -213,6 +213,8 @@ This link contains various monitoring metrics of the current build.
You can zoom, change the time range or select a specific metric on each graph.
On the graphs, annotations help you relate to changes on the build (database import, git push, etc...).
.. _odoosh/logs:
Logs
----
A viewer to have a look to your server logs.
@ -382,7 +384,9 @@ we are considering the feature if there is enough demand.
In case the domain of your users email addresses use SPF (Sender Policy Framework) or DKIM
(DomainKeys Identified Mail), don't forget to authorize Odoo as a sending host in your domain name
settings to increase the deliverability of your outgoing emails.
The configuration steps are explained in the :ref:`Discuss app documentation <discuss-email_servers-spf-compliant>`.
The configuration steps are explained in the documentation about :ref:`SPF
<email_communication/spf_compliant>` and :ref:`DKIM <email_communication/dkim_compliant>`.
.. Warning::
Forgetting to configure your SPF or DKIM to authorize Odoo as a sending host can lead to the

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>`.
può 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

@ -8,6 +8,8 @@ Miscellaneous
general/auth
general/apps_modules
general/export_import_data
general/email_communication
general/voip
general/in_app_purchase
general/developer_mode

View File

@ -0,0 +1,13 @@
:nosearch:
===================
Email Communication
===================
.. toctree::
:titlesonly:
email_communication/email_servers
email_communication/email_domain
email_communication/email_template
email_communication/faq

View File

@ -0,0 +1,164 @@
========================
Sending emails with Odoo
========================
Using your email domain in Odoo
===============================
Documents 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 updates 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. 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.
If your database is hosted on our cloud (Odoo Online or Odoo.sh), it is not necessary to add an
outgoing email server to send emails from your custom domain. You can enjoy this feature by using
the default Odoo email server.
.. 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 our :doc:`FAQ <faq>` or contact support for more
information.
However, it is recommended that you configure your domain name to ensure that emails from your
users reach your partners, rather than being considered spam.
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_communication/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 :ref:`documentation on incoming emails <email_communication/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. 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).
.. 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 SPF <https://mxtoolbox.com/spf.aspx>`_.
.. _email_communication/DKIM_compliant:
Enable DKIM
===========
The DomainKeys Identified Mail (DKIM) 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.``
.. tip::
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. The most common providers are list below.
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
=======================
The Domain-based Message Authentication, Reporting & Conformance (DMARC) 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.
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. These emails
will never reach their recipient.
``p=none`` is used for the domain owner to receive reports about entities using their domain. It
should not impact the deliverability if the DMARC check fails.
You can check the DMARC record of a domain name with a tool like
`MXToolbox DMARC <https://mxtoolbox.com/DMARC.aspx>`_.
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 :ref:`handle user notifications in Odoo <discuss_app/notification_preferences>`, or replace the
email address of the partner with a default email address.
.. _email_communication/SPFDKIM_common_providers:
SPF, DKIM & DMARC documentation of common providers
===================================================
- `OVH DNS <https://docs.ovh.com/us/en/domains/web_hosting_how_to_edit_my_dns_zone/>`_
- `OVH SPF <https://docs.ovh.com/us/en/domains/web_hosting_the_spf_record/>`_
- `GoDaddy TXT record <https://www.godaddy.com/help/add-a-txt-record-19232>`_
- `GoDaddy SPF <https://www.godaddy.com/help/add-an-spf-record-19218>`_
- `GoDaddy DKIM <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 DNS <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>`_
To fully test your configuration, the tool `Mail-Tester <https://www.mail-tester.com/>`_ will give
you a full overview of the content and configuration you have in one email sent! Mail-Tester can
also be used for other lesser known providers.
Use a default email address
===========================
To force the email address from which emails are sent, you need to create one of these two keys in
the System Parameters of the database:
- If ``mail.force.smtp.from`` is set, all outgoing emails are sent from the given address. This is
a requirement to use `Outlook with Odoo <https://docs.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365#option-1-authenticate-your-device-or-application-directly-with-a-microsoft-365-or-office-365-mailbox-and-send-mail-using-smtp-auth-client-submission>`_.
- If ``mail.dynamic.smtp.from`` is set, the from email address is replaced by the given one if the
domain does not match the domain set in `mail.catchall.domain`.
You access the **System Parameters** in :ref:`developer mode <developer-mode>` in the :menuselection:`Settings -->
Technical --> Parameters --> System Parameters` menu.

View File

@ -1,6 +1,6 @@
============================================================
How to Use my Mail Server to Send and Receive Emails in Odoo
============================================================
====================================================
Send and Receive Emails in Odoo with an Email Server
====================================================
If you are a user of Odoo Online or Odoo.sh...
==============================================
@ -17,34 +17,34 @@ 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
===============================
As a system admin, go to :menuselection:`Settings --> General Settings`
and check *External Email Servers*.
Then, click *Outgoing Mail Servers* to create one and reference the SMTP data of your email server.
Once all the information has been filled out, click on *Test Connection*.
and check *External Email Servers*. Then, click *Outgoing Mail Servers* to create one and reference
the SMTP data of your email server. 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.
@ -61,9 +61,10 @@ Can I use an Office 365 server
------------------------------
You can use an Office 365 server if you run Odoo on-premise.
Office 365 SMTP relays are not compatible with Odoo Online unless you configure
Odoo to force the outgoing "From" address (see below).
Odoo 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>`__
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 a SMTP relay for your Odoo's IP address.
How to use a G Suite server
@ -72,53 +73,23 @@ 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 port 25 is blocked for security reasons on our SaaS and Odoo.sh platform. Try using
465, 587, or 2525.
Choose allowed "From" email addresses
-------------------------------------
.. _email_communication/default_from:
Sometimes, an email's "From" (outgoing) address can belong to a different
domain, and that can be a problem.
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 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
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"
@ -133,7 +104,7 @@ 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 +122,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:
.. _email_communication/inbound_messages:
How to manage inbound messages
==============================
@ -187,7 +158,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 +167,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,21 +185,19 @@ 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.
You can change this value in :ref:`developer mode <developer-mode>`.
Go to :menuselection:`Settings --> Technical --> Automation -->
Scheduled Actions` and look for *Mail: Fetchmail Service*.
.. _Office 365 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
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 :ref:`daily email limit <email_communication/daily_limit_mail>` to prevent abuse.
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,300 @@
===============
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.
.. danger::
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/new-template-creation.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.
.. _email_communication/dynamic_placeholder_generator:
#. Under the tab *Dynamic Placeholder Generator*, look for the *Field* you would like to use.
.. image:: email_template/placeholders.png
: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
: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
: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 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.
Checking 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.png
: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 :ref:`previously <email_communication/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.png
: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.png
: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.png
: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 <email_communication/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')}``
here 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.png
:align: center
:alt: Adapted rendering of the format_date
.. _email_communication/usable_functions:
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 :ref:`developer mode <developer-mode>` is enabled.
Once developer is enabled go to :menuselection:`Settings --> Translations --> Languages` and 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.png
: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.png
: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.png
: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.png
: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 :ref:`debug mode <developer-mode>` must be
activated to see this feature) :menuselection:`Accounting --> Configuration --> Currencies`
(before or after the amount depending on the convention).
.. image:: email_template/so-template-format-amount.png
: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.png
: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 define them by default on the template:
.. image:: email_template/reply-to-template-sales.png
: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 check :ref:`how to manage inbound messages <email_communication/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 :ref:`parameter <app-website/web_base_url>`.
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.
.. caution::
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 check :doc:`our domain name
documentation </applications/websites/website/publish/domain_name>`.
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 on the edit button, then on the language button
.. image:: email_template/edit-language-template.png
:align: left
: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.png
:align: left
:alt: Translation of the body of the Application template in the different languages installed.

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

View File

@ -0,0 +1,174 @@
===
FAQ
===
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
===============
.. _red_envelop:
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 next to the
date and time of the message.
.. image:: faq/red-envelop.png
:align: center
:alt: Red envelope displayed in chatter
Common error messages
~~~~~~~~~~~~~~~~~~~~~
.. _email_communication/daily_limit_mail:
You reached your daily limit:
*****************************
.. image:: faq/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 even per minute. This is the same for Odoo, we have to limit our customers 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:
- Ask our support team to increase your daily limit. We will analyze the situation of your database
depending on (non-exhaustive list):
- How many users in your database,
- Which apps are installed,
- Your bounce rate: the percentage of email addresses that did not receive your emails because
it was returned by a mail server on its way to the final recipient. You can contact the `support
<https://www.odoo.com/help>`_.
- Use your own outgoing email server to be independent of Odoos mail limit (please refer
to :doc:`the corresponding documentation </applications/general/email_communication/email_servers>`),
- Wait until 11pm UTC for the reset and click on the retry button: The :ref:`Developer mode <developer-mode>`
must be activated. Then, go to :menuselection:`Settings --> Technical --> Emails`
.. image:: faq/email-retry-technical.png
:align: center
:alt: Retry button of an emails
.. warning::
The daily limit is global to your database and can rise quickly! By default an internal message,
a notification, a note, etc. counts as an email in your daily limit if it notifies someone.
You can mitigate this by receiving your :ref:`notifications in Odoo <discuss_app/notification_preferences>`
instead of by emails.
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 to describe the email structure
and transmit it over the Internet, and the error messages generated by email services are helpful
tools to diagnose and troubleshoot email problems.
No Error
********
Odoo is not always capable of providing information for 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 `Odoo Support <https://www.odoo.com/help>`_ for help in finding a reason.
Note: in such case, one of the most common reasons is related to :ref:`SPF <email_communication/spf_compliant>`
and/or :ref:`DKIM <email_communication/DKIM_compliant>` configuration.
Why is my email sent late?
**************************
It may happen that you schedule an email campaign but it is not sent on time. We know that
we use a delayed job to send 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 urgent (communication from one person to another one such as
Sales Orders, Invoices, Purchase Orders, etc.) are sent directly.
.. image:: faq/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 maximum an hour
before the campaign is actually sent.
Incoming emails
===============
When you have an issue with incoming emails, there might not be an indication per se 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 :file:`~/logs/`.
- The folder :file:`~/logs/` (preferably accessed by the command line) of an Odoo.sh contains
a list of files containing the logs of the database. The log files are created everyday
at 5:00 AM UTC. The two last days are not compressed, while the older ones are, in order
to gain space. The naming of the files for Today and Yesterday are :file:`odoo.log` and
:file:`odoo.log.1`. For the following, they are named with their dates and compressed.
See the Odoo.sh documentation about :ref:`logs <odoosh/logs>`. Use the command ``grep`` and
``zgrep`` (for the compressed ones) to search through the files.
- The **SaaS** users wont have access to their logs. However you can still contact
`Odoo Support <https://www.odoo.com/help>`_ , if you have a recurring issue
with the same client or domain.
Get help 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 email, stating for *Electronic Mail*, is the file format containing all the
technical information required for an investigation. The documentation of your own email 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.
.. seealso::
- `Gmail documentation
<https://support.google.com/mail/answer/29436>`_
- `Outlook documentation
<https://support.microsoft.com/en-us/office/view-internet-message-headers-in-outlook-cd039382-dc6e-4264-ac74-c048563d212c#tab=Web>`_
- The exact flow you are following in order to normally receive those emails in Odoo. Here are
examples of questions whose answers can be useful:
- 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 the :ref:`red envelope <red_envelop>`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 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

@ -11,4 +11,3 @@ Discuss
:titlesonly:
discuss/overview
discuss/advanced

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

@ -7,6 +7,8 @@ and chat. Share information, projects, files, prioritize tasks, and stay connect
and partners throughout applications. Forge better relationships, increase productivity and
transparency by promoting a convenient way of communicating.
.. _discuss_app/notification_preferences:
Choose your notifications preference
====================================
@ -96,4 +98,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

@ -94,6 +94,7 @@ In order to get this, simply add your domain name in your customer portal (a sep
If you already use CloudFlare or a similar service, you can keep using it or simply change for Odoo. The choice is yours.
.. _app-website/web_base_url:
How to make sure that all my URLs use my custom domain?
=======================================================
@ -117,4 +118,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

@ -269,3 +269,7 @@ developer/reference/mobile.rst developer/reference/ja
developer/reference/qweb.rst developer/reference/javascript/qweb.rst
services/support/supported_versions.rst administration/maintain/supported_versions.rst # services/support/* -> administration/maintain/*
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