{"id":7369,"date":"2022-07-05T23:14:56","date_gmt":"2022-07-05T23:14:56","guid":{"rendered":"https:\/\/www.directimpactsolutions.com\/comment-envoyer-des-courriels-a-partir-dun-environnement-de-developpement\/"},"modified":"2024-06-01T01:49:43","modified_gmt":"2024-06-01T01:49:43","slug":"comment-envoyer-des-courriels-a-partir-dun-environnement-de-developpement","status":"publish","type":"post","link":"https:\/\/www.directimpactsolutions.com\/fr\/comment-envoyer-des-courriels-a-partir-dun-environnement-de-developpement\/","title":{"rendered":"Comment envoyer des courriels \u00e0 partir d\u2019un environnement de d\u00e9veloppement"},"content":{"rendered":"<p>Avant, je redoutais avoir \u00e0 \u00e9laborer des codes pour des t\u00e2ches li\u00e9es \u00e0 la messagerie. J\u2019ai toujours eu l\u2019impression que c\u2019\u00e9tait difficile \u00e0 pr\u00e9parer et qu\u2019il y avait beaucoup de risques que les choses tournent mal. Lorsque la t\u00e2che de courriel sur laquelle nous travaillons est toujours en cours, nous voulons \u00e9viter d&rsquo;envoyer des courriels \u00e0 des personnes ext\u00e9rieures \u00e0 notre \u00e9quipe de d\u00e9veloppement. Nous essayons d&rsquo;\u00e9viter d&rsquo;inonder cette courte liste de personnes avec une multitude de courriels, car des ajustements mineurs sont continuellement effectu\u00e9s et test\u00e9s.<\/p><p>Puisque j\u2019ai travaill\u00e9 avec plusieurs technologies diff\u00e9rentes, j\u2019ai exp\u00e9riment\u00e9 diff\u00e9rentes fa\u00e7ons d\u2019aborder cette situation. Nombre de ces approches viennent avec leurs probl\u00e8mes propres. Je vais commencer par illustrer quelques mauvais exemples, car c\u2019est toujours une bonne chose d\u2019apprendre des erreurs des autres au lieu d\u2019apprendre \u00e0 la dure. Ensuite, nous explorerons une bonne fa\u00e7on, selon moi, de g\u00e9rer les courriels \u00e0 partir d\u2019un environnement de d\u00e9veloppement.<\/p><h2 class=\"wp-block-heading\">Exemples de mauvaises fa\u00e7ons de faire<\/h2><h3 class=\"wp-block-heading\">Envoi de courriels \u00e0 des dossiers de bases de donn\u00e9es<\/h3><p>Dans certains syst\u00e8mes avec lesquels j\u2019ai travaill\u00e9, les courriels devaient \u00eatre envoy\u00e9s aux utilisateurs ayant des dossiers de bases de donn\u00e9es. Souvent, ces dossiers d\u2019utilisateurs contenaient des donn\u00e9es r\u00e9elles, donc des adresses \u00e9lectroniques de gens qui n\u2019auraient pas d\u00fb recevoir de messages pendant le processus d\u2019essai et de d\u00e9veloppement. J\u2019ai malheureusement \u00e9t\u00e9 t\u00e9moin de moments o\u00f9 ces personnes ont re\u00e7u des courriels par erreur. C\u2019est probl\u00e9matique! <\/p><p>Cette situation peut \u00eatre \u00e9vit\u00e9e par un remplacement d\u2019adresse \u00e9lectronique. Pour ce faire, une logique peut \u00eatre incluse dans le code base pour remplacer une vraie adresse \u00e9lectronique par une repr\u00e9sentation cod\u00e9e en dur de celle du d\u00e9veloppeur pour que lui seul re\u00e7oive le courriel. <\/p><p>Cela n\u00e9cessite de modifier le code lui-m\u00eame, ce qui n\u2019est pas id\u00e9al. Dans ce cas, il faudra soit rechanger le code une fois qu\u2019il sera pr\u00eat \u00e0 la production, soit mettre en place une logique d\u2019embranchement qui d\u00e9termine si le code est ex\u00e9cut\u00e9 \u00e0 partir d\u2019un environnement de production ou de d\u00e9veloppement. M\u00eame si cela fonctionne, je pense que nous pr\u00e9f\u00e9rons tous \u00e9viter de changer un code uniquement pour qu\u2019il s\u2019adapte \u00e0 l\u2019environnement \u00e0 partir duquel il est ex\u00e9cut\u00e9.<\/p><h3 class=\"wp-block-heading\">Envoi massif de courriels<\/h3><p> Il s\u2019agit d\u2019un autre probl\u00e8me que j\u2019ai vu alors que le d\u00e9veloppeur pensait agir de mani\u00e8re s\u00e9curitaire. Les courriels n\u2019\u00e9taient envoy\u00e9s qu\u2019\u00e0 des coll\u00e8gues, mais de fa\u00e7on massive. Une boucle avait \u00e9t\u00e9 \u00e9tablie pour parcourir la liste de coll\u00e8gues qui pouvaient recevoir le courriel. Cela avait \u00e9t\u00e9 organis\u00e9 pour que chaque personne ne re\u00e7oive qu\u2019un courriel individuel, ce qui permettait de ne pas exposer les adresses \u00e9lectroniques des autres. <\/p><p>Malheureusement, pendant le d\u00e9veloppement, la boucle n\u2019a pas fonctionn\u00e9 correctement, et aurait tourn\u00e9 ind\u00e9finiment pendant la p\u00e9riode d\u2019essai si elle n\u2019avait \u00e9t\u00e9 interrompue. Lorsque le probl\u00e8me a \u00e9t\u00e9 identifi\u00e9, il \u00e9tait d\u00e9j\u00e0 trop tard. Puisque les courriels \u00e9taient vraiment distribu\u00e9s, le volume de courriels envoy\u00e9s a fait que le domaine de messagerie de l\u2019exp\u00e9diteur a \u00e9t\u00e9 mis sur liste noire. C\u2019\u00e9tait un probl\u00e8me majeur!<\/p><h2 class=\"wp-block-heading\">Comment envoyer des courriels \u00e0 partir d\u2019un environnement de d\u00e9veloppement<\/h2><h4 class=\"wp-block-heading\">MailHog<\/h4><p>Je ne crains plus de travailler sur des t\u00e2ches li\u00e9es \u00e0 la messagerie. Cette nouvelle confiance, je la dois au fait d\u2019avoir les bons outils pour m\u2019en occuper de fa\u00e7on correcte. Derni\u00e8rement, je me suis tourn\u00e9 vers une application nomm\u00e9e <a href=\"https:\/\/github.com\/mailhog\/MailHog\" data-type=\"URL\" data-id=\"https:\/\/github.com\/mailhog\/MailHog\" target=\"_blank\" rel=\"noreferrer noopener\">MailHog<\/a>. Il s\u2019agit d\u2019un utilitaire qui fonctionne comme un serveur de messagerie, mais qui capture les courriels entrant dans une base de donn\u00e9es et offre une interface de site Web pour les visualiser plut\u00f4t que de les envoyer au destinataire cibl\u00e9 (il est aussi possible d\u2019envoyer le courriel apr\u00e8s la pr\u00e9visualisation). <\/p><p>Il existe plusieurs autres utilitaires comme MailHog, mais selon moi, il s\u2019agit du plus simple \u00e0 installer et \u00e0 utiliser. MailHog est \u00e9crit en GoLang. Il pourra donc compiler pour \u00e0 peu pr\u00e8s toutes les plate-formes sur lesquelles vous l\u2019ex\u00e9cuterez. Je travaille dans l\u2019environnement Windows et il y a un syst\u00e8me binaire que je peux t\u00e9l\u00e9charger et exploiter assez facilement (sans installation). Ils offrent m\u00eame un DOCKERFILE qui permet de l\u2019utiliser avec Docker Hub si vous pr\u00e9f\u00e9rez fonctionner ainsi. <\/p><h4 class=\"wp-block-heading\">Pratiques exemplaires<\/h4><p>Lorsque je l\u2019ex\u00e9cute, je le lance en utilisant les aiguillages suivants pour qu\u2019il fonctionne selon la configuration que j\u2019ai choisie :<\/p><pre class=\"wp-block-code\"><code>-smtp-bind-addr :2500 -api-bind-addr :8080 -ui-bind-addr :8080<\/code><\/pre><p>Cela lui indique de d\u00e9tecter les courriels sur le port 2500 (la plupart des serveurs de messagerie utilisent le port 25), et me permet de voir tous les courriels re\u00e7us en utilisant un navigateur dirig\u00e9 vers <code>http:\/\/localhost:8080<\/code><\/p><p>Une fois qu\u2019il est en ex\u00e9cution, assurez-vous que le code sait que votre serveur de messagerie est situ\u00e9 sur un serveur local <code>localhost<\/code> on <code>port 2500<\/code>que tous les courriels subs\u00e9quents qu\u2019il envoie devraient \u00eatre intercept\u00e9s par MailHog. C\u2019est aussi simple que \u00e7a!<\/p><p>Une fois tout cela configur\u00e9, vous pouvez \u00eatre s\u00fbr que vous pourrez voir les courriels comme pr\u00e9vu. Le destinataire initial du courriel sera conserv\u00e9, le contenu du courriel peut \u00eatre consult\u00e9 dans les formats HTML ou texte, vous pouvez pr\u00e9visualiser ou t\u00e9l\u00e9charger les pi\u00e8ces jointes, etc.<\/p><p>Lors de la mise en place d\u2019un syst\u00e8me d\u2019envoi de courriels, il est toujours bon de configurer les d\u00e9tails du serveur de messagerie \u00e0 un seul endroit. Il s\u2019agit d\u2019une pratique courante avec les fichiers <code>.env<\/code>, mais ce ne sont pas toutes les technologies qui sont capables de mettre \u00e0 profit une telle configuration. Une fois que vous aurez mis en place ce type de pratique exemplaire, seul ce fichier de configuration devra \u00eatre mis \u00e0 jour lorsque vous d\u00e9placerez le projet du d\u00e9veloppement \u00e0 l\u2019environnement de sandbox\/production. <\/p><p>J\u2019esp\u00e8re que cela vous servira et simplifiera vos t\u00e2ches li\u00e9es \u00e0 la messagerie. Si vous avez besoin d\u2019aide pour mettre en place une telle fa\u00e7on de faire, n\u2019h\u00e9sitez pas \u00e0 <a href=\"https:\/\/www.directimpactsolutions.com\/fr\/contact\/\">communiquer avec nous<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Lorsque la t\u00e2che de courriel sur laquelle nous travaillons est toujours en cours, nous voulons \u00e9viter d&rsquo;envoyer des courriels \u00e0 des personnes ext\u00e9rieures \u00e0 notre \u00e9quipe de d\u00e9veloppement. Nous essayons d&rsquo;\u00e9viter d&rsquo;inonder cette courte liste de personnes avec une multitude de courriels, car des ajustements mineurs sont continuellement effectu\u00e9s et test\u00e9s.<\/p>\n","protected":false},"author":7,"featured_media":7236,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"","footnotes":""},"categories":[37],"tags":[117,118],"class_list":["post-7369","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web","tag-courrier-electronique","tag-environnement-de-developpement"],"uagb_featured_image_src":{"full":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send.jpg",1920,1080,false],"thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send-150x150.jpg",150,150,true],"medium":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send-300x169.jpg",300,169,true],"medium_large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send-768x432.jpg",768,432,true],"large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send-1536x864.jpg",1536,864,true],"2048x2048":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send.jpg",1920,1080,false],"woocommerce_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send-300x300.jpg",300,300,true],"woocommerce_single":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send.jpg",600,338,false],"woocommerce_gallery_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2022\/06\/email_hand_send-100x100.jpg",100,100,true]},"uagb_author_info":{"display_name":"Matt Leering","author_link":"https:\/\/www.directimpactsolutions.com\/fr\/author\/matt-leering\/"},"uagb_comment_info":0,"uagb_excerpt":"Lorsque la t\u00e2che de courriel sur laquelle nous travaillons est toujours en cours, nous voulons \u00e9viter d'envoyer des courriels \u00e0 des personnes ext\u00e9rieures \u00e0 notre \u00e9quipe de d\u00e9veloppement. Nous essayons d'\u00e9viter d'inonder cette courte liste de personnes avec une multitude de courriels, car des ajustements mineurs sont continuellement effectu\u00e9s et test\u00e9s.","_links":{"self":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/7369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/comments?post=7369"}],"version-history":[{"count":6,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/7369\/revisions"}],"predecessor-version":[{"id":17315,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/7369\/revisions\/17315"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/media\/7236"}],"wp:attachment":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=7369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/categories?post=7369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/tags?post=7369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}