Se rendre au contenu

Exigences pour créer des modules de gestion des e-mails dans Odoo,

tant de choses à savoir, mais un objectif réalisable.

Nous avons entrepris un projet visant à développer des modules pour la gestion des e-mails dans Odoo. C'est une tâche complexe, mais nous sommes convaincus qu'elle est réalisable. Notre motivation provient du désir de gagner plus de contrôle sur notre système de messagerie et de minimiser les coûts. En conséquence, nous avons décidé de transférer certaines de nos adresses e-mail de Gmail à Mailcow. Ce changement nécessite un effort significatif mais offre de nombreux avantages :

  • Nous pouvons gérer les listes noires dans Odoo, ajoutant les spammeurs à notre liste noire Mailcow.
  • Les nouvelles adresses e-mail dans Mailcow sont automatiquement créées lorsqu'un nouvel utilisateur est ajouté dans Odoo.
  • Créer des alias dans Odoo les crée également dans Mailcow.

Cependant, nous ne pouvons actuellement pas automatiser l'ajout de nouveaux e-mails à la liste des e-mails relayés à Mailcow. Donc, même si nous ne créons pas immédiatement un utilisateur Google Workspace, nous devrons ajouter manuellement l'e-mail à la liste des e-mails acheminés hors de Gmail.

Ce processus implique l'utilisation de serveurs de messagerie externes, qui peuvent être difficiles à mettre en place dans un environnement de préproduction. Le serveur externe continue de recevoir des e-mails, ce qui provoque un conflit entre les environnements de préproduction et de production. Pour résoudre ce problème, nous avons développé un module qui vérifie si nous sommes sur le serveur de production et bloque la tâche cron qui récupère les e-mails. Cette solution met fin efficacement au conflit de messagerie entre les deux serveurs. Cependant, cela soulève une nouvelle question : comment testons-nous maintenant notre module de messagerie ?

Une option est d'ajouter des fonctionnalités au module qui lui permettent de traiter le courrier. Cependant, ma méthode préférée est de mettre en place un nouveau serveur pour les tests, puis de supprimer simplement le module de défaillance du courrier. Cette méthode est simple, mais la mise en place d'un serveur de test sur un domaine de test ne l'est pas. Cela implique un travail significatif sur le côté DNS de votre domaine. Je vais vous expliquer comment faire cela avec mon serveur de messagerie préféré, Mailcow (dockerisé).

J'ai déjà un serveur Mailcow en cours d'exécution sur une VM Linux lancée sur mon serveur Proxmox. Vous pouvez héberger votre VM n'importe où (OVH, Google, AWS, Azure), ou vous pouvez utiliser ce guide pour d'autres serveurs de messagerie. Pour continuer, vous aurez besoin d'un Odoo de préproduction ou de développement et d'un serveur de messagerie externe.

Création d'un sous-domaine et configuration des DNS

​Vous devrez créer plusieurs enregistrements sur votre serveur DNS (ou sur le serveur de votre registraire de domaine si vous ne l'avez pas changé). Dans cet exemple, nous allons créer un sous-domaine (https://testmail.bemade.org%29./ Nous allons commencer par un enregistrement MX pour le sous-domaine, en utilisant le même serveur que notre domaine principal, c'est-à-dire https://mail.bemade.org/ (vous devrez peut-être créer un enregistrement A pour https://mail.bemade.org/ si vous ne l'avez pas déjà fait).

MX		​testmail	​​https://mail.bemade.org/	​	​10

Cela suffit pour recevoir des e-mails. Cependant, pour envoyer des e-mails, nous devons ajouter plus d'enregistrements pour authentifier correctement nos e-mails et les empêcher d'être marqués comme spam ou de disparaître. Ensuite, nous avons besoin d'un enregistrement TXT de cadre de politique de l'expéditeur, qui aura généralement la même valeur que votre domaine principal. Soyez conscient que vous devrez ajuster cet enregistrement si vous prévoyez d'utiliser d'autres serveurs pour envoyer du courrier à partir de votre nom de domaine.

TXT		​testmail​	​v=spf1 mx https://ip4:WWW.XXX.YYY.ZZZ/ ~all

​Remplacez https://www.xxx.yyy.zzz/ par l'adresse IP de votre serveur de messagerie. Si votre serveur signe tous les e-mails sortants avec DKIM, comme le fait Mailcow, vous devrez également ajouter un enregistrement TXT avec les clés DKIM. Votre serveur de messagerie fournira la valeur de cet enregistrement.

TXT	​dkim._domainkey.testmail​	​​v=DKIM1;k=rsa;t=s;s=email;p=......

Ce sont les enregistrements minimaux requis pour une utilisation sécurisée et sérieuse. Si vous utilisez Mailcow, vous trouverez toutes ces informations (et d'autres recommandations d'enregistrements) dans l'interface web sous la configuration du domaine. Nous avons ajouté https://testmail.bemade.org/ aux domaines sous Configuration Email dans Mailcow. Nous n'avons rempli que le champ du nom de domaine, l'avons sauvegardé, et avons suivi les boutons DNS à droite du domaine nouvellement créé.

Maintenant que nous avons un domaine, nous devons créer notre première boîte aux lettres. Dans l'interface, passez à Configuration Email / Boîte aux lettres et ajoutez-en une en remplissant la partie gauche de l'e-mail (nommée odoo dans mon cas), sélectionnez le domaine, ajoutez un nom complet, et entrez un mot de passe deux fois. Pour l'utiliser comme l'e-mail utilisé par Odoo pour envoyer tous les messages, vous devez modifier le champ Autoriser De pour désactiver la validation de l'expéditeur pour tous les domaines ou simplement votre domaine de test. Puis appuyez sur le bouton créer.

Ensuite, nous le testerons à partir de l'interface SoGo (ajoutez /sogo à l'URL de votre serveur Mailcow ou suivez l'un des liens dans l'interface d'administration ou sur l'écran de connexion principal de Mailcow, cliquez sur Webmail). Sur la connexion SoGo, entrez l'e-mail nouvellement créé avec le mot de passe correspondant. D'abord, nous testerons l'envoi en utilisant https://mail-tester.com/ (un service freemium qui évalue la délivrabilité des e-mails). Accédez à leur site web, qui vous fournira une adresse e-mail à laquelle écrire, puis vous fournira un rapport complet. Donc, dans SoGo, envoyez un e-mail à cette adresse. Revenez ensuite à https://mail-tester.com/ et vérifiez votre score. Si vous obtenez un 10/10, alors vous avez bien configuré tout. Sinon, suivez leurs conseils pour résoudre les problèmes.

Ensuite, depuis un autre serveur, envoyez un email à votre nouvelle adresse email et attendez une minute ou deux avant de vérifier dans SoGo si l'email est dans votre boîte de réception. Si votre enregistrement MX est correct et que le domaine et l'adresse e-mail créés correspondent, tout devrait fonctionner sans problème.

Configuration du serveur Odoo 

Si vous avez configuré Google ou Microsoft sur votre Odoo en tant que serveur de messagerie externe, vous devrez alors ajouter un module, que je ne couvrirai pas ici. Mais à part pour l'authentification à deux facteurs, le reste de la configuration devrait être similaire. Dans la configuration d'Odoo, cochez "Serveurs de messagerie personnalisés" et entrez votre domaine de test dans le champ "Domaine Alias" (https://testmail.bemade.org%29./ Ensuite, cliquez sur "Serveurs de messagerie entrants" et créez-en un nouveau.

Le nom de ce serveur de messagerie est juste pour information, utilisez donc ce que vous voulez. Bien que Mailcow prenne en charge à la fois POP et IMAP, nous sélectionnerons IMAP comme type de serveur. Entrez l'adresse de votre serveur de messagerie dans les champs "Nom du serveur", cochez "SSL/TLS", et réglez le port à 993. Ensuite, entrez l'adresse email créée précédemment en tant qu'Identifiant avec le Mot de passe correspondant, puis cliquez sur confirmer et enregistrer.

Pour le serveur sortant, faites la même chose, réglez la sécurité de connexion sur TLS (STARTTLS) et Authentifier avec l'utilisateur. Assurez-vous de régler le port sur 587, avec le même nom de serveur, nom d'utilisateur, et mot de passe que lors des étapes précédentes. Testez la connexion, puis sauvegardez.

Félicitations, vous avez terminé ! Vous avez maintenant un sous-domaine (ou un domaine complet) prêt à être utilisé avec un serveur externe, vous permettant de tester et de développer des modules liés à la messagerie dans Odoo.

Pourquoi mon Wifi est si lent
L'optimisation ne vient pas par défaut, mais ...