Configureer een externe e-mailserver op Odoo.com met Amazon Simple Email Service en Route53

Go to English version

Invantive vervangt verschillende applicaties zoals JIRA, Confluence, Exact Online en Dlvr.it door Odoo.com (de online editie van Odoo). Zie voor achtergrond Why does Invantive select Odoo as an internal solution and strategic choice?. Misschien worden zelfs ActiveCampaign en Sendinblue (Brevo) gemigreerd, maar het valt nog te bezien of het volume kan worden verwerkt.

In dit implementatieproces ervaren we de “volledige klantreis” (of soms de “Odoo-uitdaging” genoemd) door de software zelf te implementeren met behulp van handleidingen, lesvideo’s en basisvaardigheden voor het implementeren van bedrijfssoftware. Dit onderwerp beschrijft de externe e-mailserverconfiguratie die uiteindelijk is gebruikt op Odoo.com.

Waarom een externe e-mailserver gebruiken op Odoo.com?

De Odoo.com-platforms bieden elke omgeving een eigen e-mailadres in het formaat “company.odoo.com”. Naast het opnemen van een derde partij in de domeinnaam heeft het gebruik van bedrijf.odoo.com een aantal nadelen wanneer e-mail veel gebruikt wordt voor bedrijfskritische toepassingen.

Het belangrijkste nadeel zijn de beperkingen op het aantal e-mails dat per dag kan worden verzonden via de uitgaande mailserver van Odoo, beginnend bij 20 mails per dag voor een proefabonnement en 50 voor een regulier abonnement. Odoo dwingt zulke limieten af om te voorkomen dat hun uitgaande mailservers worden vermeld als frequente spammers, waarbij misbruikers of intensieve gebruikers een serviceverlies veroorzaken voor andere Odoo gebruikers omdat ze dezelfde uitgaande mailserver(s) delen.

Dergelijke limieten worden niet gezien op Invantive’s systemen zoals JIRA of Exact Online, hoewel zowel JIRA als Exact Online zeer beperkte tot absoluut geen analyse tools voor e-mailaflevering bieden. In dit aspect blinkt Odoo uit door schermen te bieden om de mailstroom door de uitgaande mailserver te analyseren, zelfs tot aan volledige SMTP-verkeer logging toe.

Het is mogelijk om een verhoging van het dagelijkse uitgaande e-mailverkeer aan te vragen via een ticket, maar het kan weken duren vooraleer dit is verwerkt en goedgekeurd tot een zinvol niveau. Ook blijft het onzeker of het beleid dat Odoo toepast overeenkomt met de behoefte van de gebruiker aan e-mailservercapaciteit.

Een ander nadeel is dat de kwalificatie van mail afkomstig van Odoo.com geen hypothetisch scenario is; mails van Odoo.com gebruikers lijken onder omstandigheden gekwalificeerd te worden als spam, afhankelijk van de spam-instellingen langs de route naar de ontvanger. Voor bedrijfskritisch gebruik lijkt het daarom verstandig om de e-mailafhandeling over te hevelen naar AWS SES met zijn speciale afhandeling en mogelijkheid voor aangepaste IP-adressen.

Odoo e-maildomein configureren

De eerste stap is het configureren van het e-maildomein in de Instellingen app → Algemene instellingen. Zie de afbeelding hieronder waar je het domein kunt wijzigen:

Configureer Odoo uitgaande mailserver op AWS SES

Voer de volgende stappen uit om AWS SES te gebruiken als uitgaande mailserver om uitgaande e-mails af te handelen:

  • Configureer AWS SES zodanig dat mails buiten Odoo kunnen worden verzonden zoals beschreven in Programmatically sending email from SQL using AWS SES (Simple Email Service) (Engels).
  • Controleer of de ontwikkelaarsmodus is ingeschakeld in Instellingen app → Algemene instellingen.
  • Verkrijg een gebruikersnaam om uitgaande mails te versturen (A…veel tekens) en wachtwoord voor AWS SES.
  • Ga naar Instellingen.
  • Open het Technische menu.
  • Kies “Uitgaande E-mailservers”.
  • Maak een nieuwe uitgaande server zoals hieronder getoond:

Configureer Odoo inkomende e-mailserver op aangepast domein

Voer de volgende stappen uit om e-mails die naar uw aangepaste domein zijn gestuurd door te sturen naar Odoo’s inkomende mailserver:

  • Ga naar je terminalvenster met cmd (Windows) of terminal (MacOS).
  • Start nslookup.
  • Zoek je huidige email server naam op voor het afhandelen van mail: set type=MX en company.odoo.com:
  • In dit geval is de mailserver eu165a.odoo.com.
  • Maak een gehoste zone aan in DNS, zoals AWS Route53.
  • Instrueer externe partijen om al het e-mailverkeer naar de gevonden server te leiden:
  • Voeg extra DNS-records toe waar nodig, zoals include:amazonses.com in het TXT-record om levering door SES mogelijk te maken.

Documentatie

Er is enige documentatie over het wijzigen van e-mailservers in Odoo:

Houd er rekening mee dat de documentatie geldt voor zowel on-premises als odoo.com-installaties. Dit kan soms verwarrend zijn omdat niet alle inhoud is geschreven met de verschillende implementatieplatforms in gedachten.

Ontwerp e-mailconfiguratie

In ons geval hebben we ervoor gekozen om de afhandeling van uitgaande e-mail te delegeren aan Amazon Simple Email Service met behulp van een apart domein erp.invantive.com.

AWS SES kan gemakkelijk tienduizenden of tientallen miljoenen uitgaande e-mails per dag verwerken in verschillende configuraties. De dagelijkse capaciteit kan eenvoudig worden verhoogd zolang er geen misbruik wordt gemaakt van de service. En de uitstekende verwerkingscapaciteit wordt gecombineerd met relatief lage kosten: de zogenaamde “Free Tier” omvat 62.000 gratis e-mails per maand en elke 1.000 extra e-mails kosten 10 cent, plus een toeslag voor eventuele bijlages.

Voor inkomende e-mail hebben we ervoor gekozen om alle inkomende e-mails door te sturen naar de e-mail handler van Odoo.com. Een MX DNS-record voor erp.invantive.com stuurt alle e-mails door naar de afhandelaar van Odoo.com.

Het aanmaken van een aparte inkomende e-mailserver werd als te kostbaar beschouwd, omdat Odoo.com een goede e-mailconfiguratie heeft, waarbij vaak nieuwe e-mailaliassen worden geïntroduceerd, bijvoorbeeld voor een nieuw project. Een overzicht van de huidige e-mailaliassen op Odoo zijn te vinden in het menu “Technisch” onder “E-mail” en “Aliassen”. Vergeet niet om eerst de ontwikkelaarsmodus te activeren aan het einde van de Algemene instellingen in de Instellingen-app.

Daarnaast wordt een aparte inkomende e-mailserver vrij onregelmatig uitglezen, wat leidt tot langere doorlooptijden voor interacties zoals bij projecttaken.

Samengevat is het ontwerp als volgt:

  • Gebruik een domein erp.invantive.com.
  • Gebruik AWS SES als uitgaande mailserver.
  • Stuur al het e-mailverkeer op erp.invantive.com door naar de standaard Odoo-server voor e-mail.

Voorzorgsmaatregelen

Uitgaande Poort 25 Geblokkeerd

De documentatie is een beetje vaag over de poort die gebruikt moet worden voor uitgaande mail. Tooltips tonen poort 25 als kandidaat, maar andere documentatie verbiedt het. De uiteindelijke conclusie is dat poort 25 niet beschikbaar is gemaakt om veiligheidsredenen, ook al is STARTTLS erop mogelijk.

Erger nog, de verbindingstest toont succes met poort 25, zelfs als deze niet werkt. Dus negeer de verbindingstest en gebruik altijd de chatter om een uitgaande e-mail te triggeren.

Voor AWS SES is gekozen voor TLS (STARTTLS) met poort 587 in plaats van poort 25.

MX-record

Een MX-record moet verwijzen naar een A-record. Voor erp.invantive.com hebben we het volgende statement gebruikt om de e-mailhandler van Odoo.com vast te stellen:

nslookup
set type=mx
invantive.odoo.com

Het valt nog te bezien of de waarde eu165a.odoo.com van het MX-record stabiel is of moet worden bijgewerkt wanneer Odoo.com zijn configuratie wijzigt.