Configurer une boite email de développement « catch-all » avec Office365

En environnement de développement, lorsque l’on travaille sur des processus de création ou de confirmation de comptes utilisateurs, il est très confortable de disposer d’une boite email de « catch-all » pour récupérer l'intégralité des emails envoyés depuis le code, quelle que soit l’adresse email de réception.


Si l’on travaille en local, SMTP4Dev est un formidable projet open-source qui permet de récupérer l’ensemble des emails envoyés sur « smtp:localhost » et de les afficher dans une simulation de boite email locale.

Ceci est très pratique, mais dispose de quelques limites :

  • Pas vraiment collaboratif (j’ai le cas où j’envoie des emails qui sont validés et consommés par un autre membre de l’équipe).
  • Cela se passe sur SMTP, hors, on consomme de plus en plus les services de mail en mode SaaS via API plutôt que de monter des serveurs SMTP. De notre côté, nous utilisons par exemple énormément SendGrid pour y déléguer l’envoi des emails de dev comme de prod.

Pour répondre au besoin d’avoir une boite email commune récupérant l’ensemble du trafic email généré sur un domaine, il est possible de tripatouiller un peu Office 365.


Pour cela, il vous faut :

  • L’accès à l’abonnement Office365 de votre entreprise, ou un abonnement dédié.
  • Un nom de domaine dédié à vos Emails de dev, par exemple @pouet.dev, afin de pouvoir isoler le flux emails de dev du flux de prod et de rediriger l’ensemble des emails en *@pouet.dev sur une et une seule boite email.
  • 30min de préparation, 1h de cuisson (le temps que les DNS soient propagés).

Pour la confection, cela donne :

  • Créez une boite email qui servira à recevoir l’ensemble des emails du nom de domaine (exemple : dev-catchall@pouet.prod).
  • Enregistrez votre nom de domaine de dev @pouet.dev sur votre abonnement Office365, en jouant sur les enregistrements MX.
  • Connectez-vous au centre d’administration Exchange
  • Dans le menu « flux de messagerie », dans l’onglet « domaines acceptés », sélectionnez le nom de domaine de dev, et modifiez-le pour cocher l’option « est un relais interne ».

1.jpg

Cette option va permettre d’indiquer à Office365 qu’il ne doit pas gérer directement les emails envoyés sur ce nom de domaine, mais les relayer vers un autre serveur (onglet « connecteurs »). Elle est notamment utilisée pour les entreprises qui utilisent Office 365 pour Skype, SharePoint ou tout autre service tout en souhaitant continuer à utiliser leur serveur Exchange « On premise ». Dans notre cas, nous détournons cette utilisation, car il n’y aura pas de serveur email derrière. Cette manipulation évite ici qu’Office 365 vérifie l’existence des boites emails et émette une erreur (car elles n’existeront pas dans notre cas).

  • Enfin, pour terminer, la dernière étape consiste à créer une régle de flux de messagerie dans Office 365 pour capturer et rediriger nos emails entrants sur le nom de domaine @pouet.dev vers notre boite aux lettres. Ceci se passe dans l’onglet « Règles », qui permet de définir des règles de routage sur le flux de mails entrant (pour gérer des blacklists par exemple).
  • Dans le champs « appliquez cette règle si », ajoutez l’option « l’adresse de destinataire inclut », avec la valeur « @pouet.dev ». Dans le champ « Procéder comme suit », sélectionnez « Redirigez le message vers… » avec comme valeur la boite Email que vous avez créée pour centraliser les emails.

2.jpg

Et voilà, il suffit d’attendre quelques minutes le temps que la configuration se propage et tout est fini !

Chaque membre de l’équipe peut ensuite ajouter la boite de « catch all » dans son Outook, et l’ensemble des emails en *@pouet.dev s’y retrouveront (test@pouet.dev, toto@pouet.dev, marion@pouet.dev...)

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus