{"id":23890,"date":"2026-09-16T09:58:24","date_gmt":"2026-09-16T09:58:24","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/comment-kanban2go-applique-la-loi-de-zawinski\/"},"modified":"2026-09-16T09:58:24","modified_gmt":"2026-09-16T09:58:24","slug":"comment-kanban2go-applique-la-loi-de-zawinski","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/","title":{"rendered":"Comment Kanban2go applique la loi de Zawinski"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Cet article de blog client a \u00e9t\u00e9 r\u00e9dig\u00e9 par Damon Cali. Damon est le propri\u00e9taire de\u00a0Ninth Yard, qui a cr\u00e9\u00e9 TrackJumper, une application web simple de suivi des bugs. Il est \u00e9galement d\u00e9veloppeur web principal pour\u00a0<\/em><a href=\"https:\/\/kanban2go.com\/\"><em>kanban2go<\/em><\/a><em>.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"500\" height=\"85\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2go.png\" alt=\"kanban2go\" class=\"wp-image-4787\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2go.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2go-300x51.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Chaque programme tente de s&rsquo;\u00e9tendre jusqu&rsquo;\u00e0 pouvoir lire des emails. Les programmes qui ne peuvent pas s&rsquo;\u00e9tendre ainsi sont remplac\u00e9s par ceux qui le peuvent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La loi de Zawinski<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je ne sais pas si c&rsquo;est vrai, mais\u00a0<a href=\"https:\/\/kanban2go.com\/\">kanban2go<\/a>\u00a0a r\u00e9cemment fait un pas dans cette direction avec l&rsquo;ajout d&rsquo;une fonctionnalit\u00e9 bas\u00e9e sur l&#8217;email. Une chose qui devient \u00e9vidente d&#8217;embl\u00e9e, c&rsquo;est que cr\u00e9er une application web capable de recevoir des emails est difficile. Il y a beaucoup d&rsquo;\u00e9l\u00e9ments mobiles, dont certains constituent des projets majeurs \u00e0 part enti\u00e8re.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;utilisateur envoie un message par email, et vous devez le r\u00e9cup\u00e9rer et le traiter d&rsquo;une mani\u00e8re ou d&rsquo;une autre. Comment y parvenir\u00a0? Voulez-vous maintenir votre propre serveur d&#8217;email\u00a0? Devez-vous configurer des messageries pour tous vos utilisateurs\u00a0? Et qu&rsquo;en est-il du spam et de la d\u00e9livrabilit\u00e9\u00a0? Il y a de quoi pousser un d\u00e9veloppeur \u00e0 se demander si cela en vaut la peine.<\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-9375\"><p class=\"h5 m-0\" id=\"toc-title-9375\">Table des mati\u00e8res<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#trouver-un-moyen-plus-facile-de-creer-des-taches\">Trouver un moyen plus facile de cr\u00e9er des t\u00e2ches<\/a><a class=\"scrollme link-body-color\" href=\"#etape-1-configuration-de-votre-domaine\">\u00c9tape 1 &#8211; Configuration de votre domaine<\/a><a class=\"scrollme link-body-color\" href=\"#etape-2-configuration-des-regles-de-routage-pour-le-transfert-demail\">\u00c9tape 2 &#8211; Configuration des r\u00e8gles de routage pour le transfert d&#8217;email<\/a><a class=\"scrollme link-body-color\" href=\"#etape-3-reception-des-emails-avec-rails\">\u00c9tape 3 &#8211; R\u00e9ception des emails avec Rails<\/a><a class=\"scrollme link-body-color\" href=\"#etape-4-detendez-vous\">\u00c9tape 4 &#8211; D\u00e9tendez-vous<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\">Trouver un moyen plus facile de cr\u00e9er des t\u00e2ches<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est ce que j&rsquo;avais en t\u00eate lorsque nous avons cr\u00e9\u00e9 la bo\u00eete de t\u00e2ches de kanban2go. Tout d&rsquo;abord, un peu de contexte. kanban2go est une application de gestion des t\u00e2ches con\u00e7ue autour des principes du\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Kanban\">kanban<\/a>. Chaque utilisateur poss\u00e8de un ou plusieurs tableaux kanban virtuels, sur lesquels se trouvent plusieurs \u00ab\u00a0t\u00e2ches\u00a0\u00bb virtuelles. Vous vous connectez, cliquez sur \u00ab\u00a0Ajouter une t\u00e2che\u00a0\u00bb et vous obtenez une t\u00e2che sur le tableau que vous pouvez modifier, faire glisser et avec laquelle vous pouvez interagir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous voulions am\u00e9liorer les choses en offrant aux utilisateurs la possibilit\u00e9 d&rsquo;envoyer des t\u00e2ches par email sur leur compte, au lieu de devoir se connecter \u00e0 l&rsquo;application. C&rsquo;est l\u00e0 que j&rsquo;ai commenc\u00e9 \u00e0 avoir le tournis, ce qui est g\u00e9n\u00e9ralement un bon indicateur qu&rsquo;il est temps de voir si quelqu&rsquo;un d&rsquo;autre a r\u00e9solu le probl\u00e8me.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les bons artistes empruntent. Les grands artistes volent. Dans ce cas, les artistes pragmatiques louent. Heureusement, Mailgun rend tout ce processus facile. Je vais vous expliquer dans cet article comment nous avons abord\u00e9 le probl\u00e8me, dans l&rsquo;espoir que cela vous donnera des id\u00e9es pour votre propre application. Le code pr\u00e9sent\u00e9 ici n&rsquo;est pas exactement celui que nous utilisons, il s&rsquo;agit d&rsquo;une version simplifi\u00e9e, mais les diff\u00e9rences sont davantage li\u00e9es \u00e0 kanban2go qu&rsquo;\u00e0 Mailgun.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9tape 1 &#8211; Configuration de votre domaine<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La premi\u00e8re \u00e9tape (apr\u00e8s vous \u00eatre inscrit sur Mailgun) consiste \u00e0 cr\u00e9er et \u00e0 configurer votre domaine sur Mailgun.<\/p>\n\n\n\r\n    <aside data-content-type=\"longform\"  class=\"banner-block longform-spacings rounded-lg shadow-lg px-5 py-6 px-md-6 py-md-7 p-lg-7 bg-light\" data-theme=\"dark\" aria-labelledby=\"banner-block-block_d8f3cf00fdf922b2aa218ab2ea196239\">\r\n                    <p class=\"text-uppercase section-caption text-body-color\">\r\n                S&rsquo;inscrire            <\/p>\r\n                            <p class=\"h4 text-accent fw-bold\" id=\"banner-block-block_d8f3cf00fdf922b2aa218ab2ea196239\">\r\n                Lancez-vous, c&rsquo;est facile ! Et c&rsquo;est gratuit.            <\/p>\r\n                            <div class=\"mb-0 text-body-color\">\r\n                                    <div class=\"content-body mb-0 text-body-color\">D\u00e9couvrez ce que vous pouvez accomplir avec la meilleure plateforme de livraison d\u2019emails au monde.<\/div>\r\n                            <\/div>\r\n        \r\n        <div class=\"text-start mt-5\"><a href=\"https:\/\/signup.mailgun.com\/new\/signup\"  class=\"btn btn-secondary\" >Get started<\/a><\/div>\r\n    <\/aside>\r\n\r\n\n\n\n<p class=\"wp-block-paragraph\"> Nous avons choisi d&rsquo;utiliser taskbox.kanban2go.com. De cette fa\u00e7on, un utilisateur peut envoyer un message \u00e0 user_abc123@taskbox.kanban2go.com (par exemple) et voir le message appara\u00eetre dans sa bo\u00eete de t\u00e2ches sous la forme d&rsquo;une t\u00e2che kanban2go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La configuration du domaine consiste enti\u00e8rement \u00e0 param\u00e9trer les enregistrements DNS de votre domaine selon les instructions de Mailgun et \u00e0 s\u00e9lectionner les options que vous souhaitez dans le panneau de contr\u00f4le. Des instructions explicites se trouvent dans le panneau de contr\u00f4le Mailgun pour les param\u00e8tres DNS. Il vous suffit de les suivre.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4788\" width=\"500\" height=\"309\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban.png\" alt=\"kanban\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban-300x185.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pour les options, nous avons choisi d&rsquo;activer le filtre anti-spam, bloquant tout spam entrant (vous pourriez aussi conserver le spam, mais restons simples). Comme nous n&rsquo;avions besoin que d&rsquo;un seul sous-domaine, nous avons opt\u00e9 pour un domaine r\u00e9gulier au lieu d&rsquo;un domaine g\u00e9n\u00e9rique.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4789\" width=\"500\" height=\"249\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2.png\" alt=\"kanban2\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2-300x149.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est tout pour la configuration du domaine.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9tape 2 &#8211; Configuration des r\u00e8gles de routage pour le transfert d&#8217;email<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Une grande partie de la simplicit\u00e9 de Mailgun vient de son syst\u00e8me de routage. Vous configurez des r\u00e8gles de routage qui indiquent \u00e0 Mailgun quoi faire avec les messages qu&rsquo;il re\u00e7oit sur le domaine que vous avez configur\u00e9. Dans notre cas, ce n&rsquo;est pas plus compliqu\u00e9\u00a0: nous voulions que Mailgun transf\u00e8re tous les messages envoy\u00e9s \u00e0 *@taskbox.kanban2go.com vers une URL de notre application\u00a0: http:\/\/kanban2go.com\/mailgun\/receive. L&rsquo;action \u00e0 cette URL traitera le message entrant de mani\u00e8re appropri\u00e9e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce qui est g\u00e9nial avec les r\u00e8gles de routage, c&rsquo;est qu&rsquo;elles prennent en charge <a href=\"http:\/\/en.wikipedia.org\/wiki\/Regular_expression\" target=\"_tabs\" rel=\"noopener noreferrer\">les expressions r\u00e9guli\u00e8res<\/a> et m\u00eame <a href=\"http:\/\/www.regular-expressions.info\/named.html\" target=\"_tabs\" rel=\"noopener noreferrer\">la capture nomm\u00e9e<\/a> qui sont transmises aux actions, ce qui vous offre une grande flexibilit\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les r\u00e8gles de routage sont configur\u00e9es dans l&rsquo;onglet Routes du panneau de contr\u00f4le Mailgun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous cr\u00e9ons d&rsquo;abord une expression de filtre, que l&rsquo;on peut consid\u00e9rer comme une expression r\u00e9guli\u00e8re pour Mailgun. Dans notre cas, nous voulons correspondre \u00e0 chaque message envoy\u00e9 \u00e0 notre domaine.\n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>match_recipient('.*@taskbox.kanban2go.com')<\/code> Ensuite, nous d\u00e9finissons une action qui indique \u00e0 Mailgun quoi faire lorsqu&rsquo;il obtient une correspondance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>forward(\"http:\/\/kanban2go.com\/mailgun\/receive\"), stop()<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans ce cas, nous transf\u00e9rons le message \u00e0 notre application, puis nous nous arr\u00eatons.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mailgun analysera les messages pour vous, offrant ainsi des fonctionnalit\u00e9s pratiques, ou bien vous pouvez choisir de recevoir le message brut. Comme nous ne faisons rien de fantaisiste et que cela nous \u00e9pargne du travail, nous avons choisi de recevoir les messages tels qu&rsquo;analys\u00e9s par Mailgun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est l\u00e0 qu&rsquo;une grande partie de la magie op\u00e8re. Lorsque Mailgun re\u00e7oit un message correspondant, il le traite et envoie une requ\u00eate POST \u00e0 l&rsquo;URL indiqu\u00e9e dans la r\u00e8gle de routage Mailgun. Les param\u00e8tres de cette requ\u00eate incluent l&rsquo;exp\u00e9diteur, l&rsquo;objet, le corps et tout un tas d&rsquo;autres \u00e9l\u00e9ments utiles. <a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Consultez la documentation<\/a> pour plus d&rsquo;informations sur le routage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9tape 3 &#8211; R\u00e9ception des emails avec Rails<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Maintenant que Mailgun nous envoie des requ\u00eates POST, nous devons configurer notre application Rails pour les traiter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans kanban2go, un utilisateur a de nombreuses t\u00e2ches. Chaque t\u00e2che poss\u00e8de un attribut nomm\u00e9 \u00ab\u00a0content\u00a0\u00bb qui contient le texte de la t\u00e2che.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans notre application Rails, nous devons traiter les requ\u00eates POST provenant de Mailgun \u00e0 l&rsquo;adresse <code>http:\/\/kanban2go.com\/mailgun\/receive<\/code>. La premi\u00e8re \u00e9tape consiste \u00e0 cr\u00e9er une route pour notre nouvelle action dans routes.rb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>post '\/mailgun\/receive' =&gt; 'mailgun#receive'<\/code> Ensuite, nous devons cr\u00e9er un MailgunController avec une action \u00ab\u00a0receive\u00a0\u00bb dans <code>mailgun_controller.rb<\/code><\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                PHP                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-PHP\">\r\n                                <code id=\"code_0_content\" class=\"language-PHP\">\r\n\r\n                                    class MailgunController &lt; ApplicationControllerrn  protect_from_forgery :except =&gt; [:receive]rn  def receivern    user = User.find_by_taskbox_address(params[&#039;recipient&#039;])rn    stripped_text = params[&#039;stripped-text&#039;]rn    if userrn      Task.create(:user =&gt; user, :content =&gt; stripped_text)rn    endrn    render :nothing =&gt; truern  endrnend\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Notez que nous devons d\u00e9sactiver la protection contre les falsifications pour l&rsquo;action de r\u00e9ception. Pour plus d&rsquo;informations sur le fonctionnement de protect_from_forgery, vous trouverez une excellente explication dans le <a href=\"http:\/\/guides.rubyonrails.org\/security.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Guide de s\u00e9curit\u00e9 Rails<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La premi\u00e8re chose \u00e0 faire dans l&rsquo;action de r\u00e9ception est de r\u00e9cup\u00e9rer l&rsquo;utilisateur \u00e0 qui le message a \u00e9t\u00e9 envoy\u00e9. Pour ce faire, nous attribuons \u00e0 chaque utilisateur une adresse email de bo\u00eete de t\u00e2ches unique (dans un attribut \u00ab\u00a0taskbox_address\u00a0\u00bb) lors de sa cr\u00e9ation. Par exemple, une taskbox_address pourrait \u00eatre \u00ab\u00a0hard_to_guess74623@taskbox.kanban2go.com\u00a0\u00bb. L&rsquo;important est que le nom d&rsquo;utilisateur de l&rsquo;adresse soit unique et difficile \u00e0 deviner. Nous trouvons ensuite l&rsquo;utilisateur avec la m\u00e9thode User.find_by_taskbox_address (cette information est envoy\u00e9e par Mailgun en tant que param\u00e8tre &lsquo;recipient&rsquo;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ensuite, nous extrayons le param\u00e8tre \u00ab\u00a0stripped-text\u00a0\u00bb de la requ\u00eate. C&rsquo;est un \u00e9l\u00e9ment que Mailgun fournit lorsqu&rsquo;il analyse un message par email. Le \u00ab\u00a0stripped-text\u00a0\u00bb correspond simplement au corps de l&#8217;email sans aucune partie cit\u00e9e ni signature.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si nous trouvons un utilisateur, nous cr\u00e9ons une t\u00e2che lui appartenant et d\u00e9finissons le contenu de cette t\u00e2che sur le texte extrait. Si nous ne trouvons pas d&rsquo;utilisateur, rien ne se passe.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9tape 4 &#8211; D\u00e9tendez-vous<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Et c&rsquo;est tout. C&rsquo;est tout ce qu&rsquo;il y a \u00e0 faire pour transformer des emails en t\u00e2ches avec Mailgun. Bien s\u00fbr, il s&rsquo;agit d&rsquo;un exemple tr\u00e8s simple. En fonction de vos besoins en mati\u00e8re de s\u00e9curit\u00e9 et de confidentialit\u00e9, vous devrez peut-\u00eatre passer par des v\u00e9rifications et une logique suppl\u00e9mentaires dans votre application, mais le plus difficile est g\u00e9r\u00e9 pour vous par Mailgun\u00a0: le routage, l&rsquo;analyse et le filtrage anti-spam.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;esp\u00e8re que cela vous aidera \u00e0 comprendre pourquoi vous n&rsquo;avez plus besoin de craindre les emails dans votre application. Il y a tout un monde de possibilit\u00e9s\u00a0: laissez parler votre cr\u00e9ativit\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Envisagez-vous d&rsquo;int\u00e9grer la gestion des emails dans votre application\u00a0? Avez-vous des commentaires sur l&rsquo;approche d\u00e9crite ici\u00a0? Partagez votre avis dans les commentaires du blog ou rejoignez <a href=\"http:\/\/news.ycombinator.com\/item?id=5227352\" target=\"_tabs\" rel=\"noopener noreferrer\">la conversation sur HackerNews<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><i>Transparence totale\u00a0: le fondateur de kanban2go.com, Prabhakar Gopalan, travaille chez Rackspace, la soci\u00e9t\u00e9 m\u00e8re de Mailgun. kanban2go.com est ant\u00e9rieur au travail de Prabhakar chez Rackspace.<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;utilisateur envoie un message par email et vous devez le r\u00e9cup\u00e9rer et le traiter d&rsquo;une mani\u00e8re ou d&rsquo;une autre. Comment y parvenir\u00a0? En savoir plus \u2013<\/p>\n","protected":false},"author":13,"featured_media":4555,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[22],"class_list":["post-23890","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-product"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Comment kanban2go applique la loi de Zawinski - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"L&#039;utilisateur envoie un message par email et vous devez le r\u00e9cup\u00e9rer et le traiter d&#039;une mani\u00e8re ou d&#039;une autre. Comment y parvenir\u00a0? En savoir plus \u2013\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment kanban2go applique la loi de Zawinski - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"L&#039;utilisateur envoie un message par email et vous devez le r\u00e9cup\u00e9rer et le traiter d&#039;une mani\u00e8re ou d&#039;une autre. Comment y parvenir\u00a0? En savoir plus \u2013\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/comment-kanban2go-applique-la-loi-de-zawinski\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/comment-kanban2go-applique-la-loi-de-zawinski\\\/\",\"name\":\"Comment kanban2go applique la loi de Zawinski - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/comment-kanban2go-applique-la-loi-de-zawinski\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/comment-kanban2go-applique-la-loi-de-zawinski\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"datePublished\":\"2026-09-16T09:58:24+00:00\",\"description\":\"L'utilisateur envoie un message par email et vous devez le r\u00e9cup\u00e9rer et le traiter d'une mani\u00e8re ou d'une autre. Comment y parvenir\u00a0? En savoir plus \u2013\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/comment-kanban2go-applique-la-loi-de-zawinski\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/comment-kanban2go-applique-la-loi-de-zawinski\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/comment-kanban2go-applique-la-loi-de-zawinski\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/comment-kanban2go-applique-la-loi-de-zawinski\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment Kanban2go applique la loi de Zawinski\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Des API d\u2019emails transactionnels puissantes qui vous permettent d'envoyer, de recevoir et de suivre des emails, con\u00e7ues pour les d\u00e9veloppeurs. En savoir plus d\u00e8s aujourd'hui !\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comment kanban2go applique la loi de Zawinski - Transactional Email API Service For Developers | Mailgun","description":"L'utilisateur envoie un message par email et vous devez le r\u00e9cup\u00e9rer et le traiter d'une mani\u00e8re ou d'une autre. Comment y parvenir\u00a0? En savoir plus \u2013","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment kanban2go applique la loi de Zawinski - Transactional Email API Service For Developers | Mailgun","og_description":"L'utilisateur envoie un message par email et vous devez le r\u00e9cup\u00e9rer et le traiter d'une mani\u00e8re ou d'une autre. Comment y parvenir\u00a0? En savoir plus \u2013","og_url":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/","url":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/","name":"Comment kanban2go applique la loi de Zawinski - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","datePublished":"2026-09-16T09:58:24+00:00","description":"L'utilisateur envoie un message par email et vous devez le r\u00e9cup\u00e9rer et le traiter d'une mani\u00e8re ou d'une autre. Comment y parvenir\u00a0? En savoir plus \u2013","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/comment-kanban2go-applique-la-loi-de-zawinski\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/fr\/blog\/"},{"@type":"ListItem","position":3,"name":"Comment Kanban2go applique la loi de Zawinski"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/fr\/#website","url":"https:\/\/www.mailgun.com\/fr\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Des API d\u2019emails transactionnels puissantes qui vous permettent d'envoyer, de recevoir et de suivre des emails, con\u00e7ues pour les d\u00e9veloppeurs. En savoir plus d\u00e8s aujourd'hui !","publisher":{"@id":"https:\/\/www.mailgun.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/fr\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog\/23890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":0,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog\/23890\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media\/4555"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media?parent=23890"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog_category?post=23890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}