Skip to Content
Menu
This question has been flagged
2 Replies
4847 Views

I would like to set up a multi-company Odoo database where each company has its own email domain and emails going out of that company need to use that domain and a specific email for outgoing. 

Avatar
Discard
Author Best Answer

Let's say you have two companies: "FirstCom" and "SecondCom"

Emails going out of FirstCom use the domain first.com and emails going out of SecondCom use the domain second.com. Additionally irrespective of who the user is, emails going out of FirstCom use admin@first.com as the outgoing email, and emails going out of SecondCom use admin@second.com. 

To simplify things: 

FirstCom uses first.com as the email domain and sends out email using admin@first.com

SecondCom uses second.com as the email domain and sends out email using admin@second.com

The setup will be as follows: 

1) First, create two alias domains one for each company, and update the "Default From Alias" field and setup the exact email you need for each company. You would need to be in developer mode to access the "Alias Domain" menu which is under the Technical Menu in the Settings app. 

2) Next set these domains on the email domain field on each of the companies.

3) Set up two outgoing mail servers in Odoo: one for admin@first.com and another for admin@second.com. Also, set the "FROM Filtering" to be the same email as well. To access the Outgoing Mail Servers menu you would have to be in developer mode and you will find this in the Technical Menu of the Settings App. 

Since the "Default From Alias" field from the Alias Domains is an exact match to the two outgoing mail servers and has been set on the company, Odoo will use those two outgoing mail servers to send out emails based on the company. This happens irrespective of who the user is and is company-specific.


However, there is a catch and a drawback to this, if you have a user in the database that is the exact match of the email that's been used to set up the outgoing mail server then Odoo will always pick that outgoing mail server irrespective of the company. So it's important to have a different email for the outgoing and make sure none of the users have the same exact email as the server.

Note: Every mail server setup is different and varies based on the email server you use. The above screenshots are just examples. Please refer to this doc for more information: 

https://www.odoo.com/documentation/17.0/applications/general/email_communication.html


4) The above setup handles the outgoing section of emails out of Odoo. Now you still need to handle the incoming/replies emails and be able to receive the reply back into Odoo's chatter. This is essentially your catchall alias and is always used as the "Reply To" to the emails going out of Odoo. 

For the above case: since you have two domains you would need two catchall emails. If you had 3 domains, then you need three catchall emails, and so on...



So the two catchall emails for each of the domains would be catchall@first.com and catchall@second.com. However, Odoo does not recognize these emails at the moment and replies will not be received directly by Odoo. 

By default when we do not use custom domains, Odoo's database uses catchall@databasename.odoo.com where databasename is the name of your database URL. But with custom domains, the catchall also gets updated with the respective domains. 

To handle this issue and allow Odoo to receive the replies back into the database, we have two options. I will be using the current example to explain the setup: 


Option 1 - Redirection Of Emails:

[RECOMMENDED]: You would first need to create the different catchall emails on your respective email servers. In this case, it would be catchall@first.com and catchall@second.com. Once these two emails are created you would have to set up a forwarding rule in each mailbox, that will forward all emails received to catchall@databasename.odoo.com and since it is an odoo.com domain, Odoo's database will recognize this and receive the reply back. You can refer to this link for more information: 

https://www.odoo.com/documentation/17.0/applications/general/email_communication/email_servers_inbound.html#email-inbound-custom-domain-redirections


Option 2 - Incoming Mail Servers:​

If you do not want to do the redirection of the emails, you can also directly setup incoming email servers for each of the catchall inside your Odoo database. For this as well, you need to make sure that all the catchall emails are created on your email server. For the use case described, you would have to create two incoming mail servers i.e catchall@first.com and catchall@second.com in your Odoo database. The Incoming Mail Server menu can be accessed through the developer mode and you will find it under the Technical Menu in the Settings app. For more information Incoming Email Servers, you can refer to this documentation: 

https://www.odoo.com/documentation/17.0/applications/general/email_communication/email_servers_inbound.html#email-inbound-custom-domain-incoming-server


Note: Apart from catchall, Odoo has other aliases as well that are used for incoming emails such as bounce or any of the other aliases used on the vendor bills, sales teams, invoices etc which are used to create records in Odoo. So depending on what option is chosen and you want to use the custom domain for other aliases as well, you would have to repeat the setup for each of the aliases similar to how we do it for catchall. 

Example: 

If we were using the redirecting emails as an option then we would need to create emails for bounce@first.com and bounce@second.com and then create forwarding rules for each of the mailboxes to forward emails to bounce@databasename.odoo.com. If you do not want to use redirection of emails, then setup incoming mail server for both emails bounce@first.com and bounce@second.com. Similarly, you can do it for other aliases that create records in Odoo. 


Hope this helps everyone! :)

Avatar
Discard

nice explanation!

could this be configured in Odoo online, using email server from Odoo and creating 2 outgoing servers (authenticanting 2 times with "command line interface")?
thanks

Author

@Ricardo Gross:

If you want to use Odoo's default server, you would not need to create the two outgoing mail servers via the command line authentication as its basically using the same server in both cases. The only time you would do this if you have another mail server which is used for email marketing and you want to tell Odoo to use its own server for the regular transactional emails. Nevertheless, you can still create the two Alias Domains and set the on the respective companies. Then make sure to set the correct DNS (SPF etx) records in both of the domain mail servers which will allow Odoo to spoof the domain while using the default server. You can refer to this documentation for the DNS records:

https://www.odoo.com/documentation/18.0/applications/general/email_communication/email_domain.html

hi @oshan Dubhashi (tod)
thank you very much, however, I have one more question regarding multi company.
How can a user send an email from company1 using i.e. ricardo@company1 and from company2 using ricardo@company2, when the user is only linked to one contact and email respectively?
BR
Ricardo

Related Posts Replies Views Activity
2
May 25
2469
1
Jul 24
2248
2
Jun 24
2034
1
May 24
2346
1
May 24
1751