{"id":98791,"date":"2025-02-23T23:12:44","date_gmt":"2025-02-23T19:42:44","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/"},"modified":"2025-02-23T23:12:44","modified_gmt":"2025-02-23T19:42:44","slug":"%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/","title":{"rendered":"\u062a\u0648\u0633\u0639\u0647 \u062e\u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u067e\u0627\u0633\u062e\u06af\u0648 \u0628\u0627 MJML \u0631\u0627 \u0633\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f"},"content":{"rendered":"<div data-article-id=\"2294291\" id=\"article-body\">\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0627\u06cc\u0645\u06cc\u0644 \u062f\u0631 HTML \u06cc\u06a9 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a. \u0628\u06cc\u0646 \u0686\u0631\u0627\u063a\u0647\u0627<br \/><code><\/p>\n<table> \u00e0 <strong>r\u00e9p\u00e9tition<\/strong>, le CSS inline *<em>obligatoire *<\/em> et les nombreux clients mails qui interpr\u00e8tent le code diff\u00e9remment, cr\u00e9er une newsletter responsive et compatible partout peut vite devenir un cauchemar.<\/p>\n<p>Mais il existe une solution qui change la donne : <strong>MJML<\/strong>.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#Pourquoi_coder_des_emails_en_HTML_est_complique\" >Pourquoi coder des emails en HTML est compliqu\u00e9 ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#Quest-ce_que_MJML\" >Qu'est-ce que MJML ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#Les_avantages_de_MJML\" >Les avantages de MJML<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#1_Responsive_by_design\" >1. Responsive by design<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#2_Compatibilite_multi-clients\" >2. Compatibilit\u00e9 multi-clients<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#3_Gain_de_temps\" >3. Gain de temps<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#4_Integration_facile\" >4. Int\u00e9gration facile<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#5_Previsualisation_en_temps_reel\" >5. Pr\u00e9visualisation en temps r\u00e9el<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#Quand_utiliser_MJML\" >Quand utiliser MJML ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#Read_next\" >Read next<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#Dealing_with_open_database_transactions_in_Prisma\" >Dealing with open database transactions in Prisma<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#%DA%86%D8%B1%D8%A7_%D8%AA%D9%88%D8%B3%D8%B9%D9%87_%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AD%D8%AF%D8%A7%DA%A9%D8%AB%D8%B1_%DA%A9%D8%A7%D8%B1%D8%A2%DB%8C%DB%8C_%D8%A8%D8%A7%DB%8C%D8%AF_%D9%88%D8%B8%D8%A7%DB%8C%D9%81_%D8%AE%D9%88%D8%AF_%D8%B1%D8%A7_%D8%AF%D8%B3%D8%AA%D9%87_%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D9%86%D9%86%D8%AF\" >\u0686\u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u0631\u0627\u06cc \u062d\u062f\u0627\u06a9\u062b\u0631 \u06a9\u0627\u0631\u0622\u06cc\u06cc \u0628\u0627\u06cc\u062f \u0648\u0638\u0627\u06cc\u0641 \u062e\u0648\u062f \u0631\u0627 \u062f\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u06a9\u0646\u0646\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#%D8%A8%D8%A7%D8%B2%DB%8C_%D8%A8%D8%A7_Hashmap_%D8%9B_%D8%AF%D8%B1_%D8%AC%D8%A7%D9%88%D8%A7\" >\u0628\u0627\u0632\u06cc \u0628\u0627 Hashmap  () \u061b \u062f\u0631 \u062c\u0627\u0648\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%ae%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-%d9%be%d8%a7%d8%b3%d8%ae%da%af%d9%88-%d8%a8%d8%a7-mjml-%d8%b1%d8%a7-%d8%b3%d8%a7%d8%af%d9%87-%da%a9%d9%86\/#5_API_%D9%87%D8%A7%DB%8C_%D8%A8%D8%B1%D8%AA%D8%B1_%D8%AF%D8%A7%D8%AF%D9%87_%D9%85%D8%A7%D9%84%DB%8C_%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%B3%D8%A7%D8%AE%D8%AA_%DB%8C%DA%A9_%D8%B1%D8%AF%DB%8C%D8%A7%D8%A8_%D9%82%D8%AF%D8%B1%D8%AA%D9%85%D9%86%D8%AF_%D8%B3%D9%87%D8%A7%D9%85_%D8%B3%D9%87%D8%A7%D9%85_%E2%9A%A1\" >5 API \u0647\u0627\u06cc \u0628\u0631\u062a\u0631 \u062f\u0627\u062f\u0647 \u0645\u0627\u0644\u06cc \u0631\u0627\u06cc\u06af\u0627\u0646 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0631\u062f\u06cc\u0627\u0628 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0633\u0647\u0627\u0645 \u0633\u0647\u0627\u0645 \u26a1<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Pourquoi_coder_des_emails_en_HTML_est_complique\"><\/span>\n<p>  Pourquoi coder des emails en HTML est compliqu\u00e9 ?<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Contrairement au d\u00e9veloppement web classique, les emails HTML doivent \u00eatre compatibles avec une multitude de clients mails** (Gmail, Outlook, Apple Mail, etc.), chacun ayant ses propres r\u00e8gles d\u2019interpr\u00e9tation du code. Voici quelques-uns des d\u00e9fis :<\/p>\n<ul>\n<li>Utilisation massive des balises <code><br \/>\n<table> pour structurer le contenu.<\/p>\n<li>CSS inline obligatoire pour garantir un rendu correct.<\/li>\n<li>Gestion du responsive laborieuse, souvent n\u00e9cessitant des hacks.<\/li>\n<li>Probl\u00e8mes d'affichage al\u00e9atoires selon les clients mails.<\/li>\n<p>Avec plus de <strong>60% des emails ouverts sur mobile<\/strong>, assurer un rendu responsive est essentiel, mais tr\u00e8s complexe \u00e0 r\u00e9aliser en HTML pur.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cpqz93jy4i4miv0nrg1.png\" alt=\"\u0634\u0631\u062d \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"340\" height=\"307\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Quest-ce_que_MJML\"><\/span>\n<p>  Qu'est-ce que MJML ?<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frx25fdhn6hcmi16jd6i1.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"512\" height=\"208\" title=\"\"><\/p>\n<p>MJML (\u0632\u0628\u0627\u0646 MailJet Markup Language) \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u0645\u0646\u0628\u0639 \u0628\u0627\u0632 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 MailJet \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u062c\u0627\u062f \u0627\u06cc\u0645\u06cc\u0644 \u0647\u0627\u06cc \u067e\u0627\u0633\u062e\u06af\u0648 \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06cc\u062f\u0647 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a: \u0634\u0645\u0627 \u0628\u0627 \u0628\u0631\u0686\u0633\u0628 \u0647\u0627\u06cc \u0633\u0627\u062f\u0647 \u0648 \u0645\u0639\u0646\u0627\u06cc\u06cc (\u0645\u0627\u0646\u0646\u062f OR) \u06a9\u062f \u0645\u06cc \u06a9\u0646\u06cc\u062f \u060c \u0648 MJML \u06a9\u062f \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 HTML \u0628\u0647\u06cc\u0646\u0647 \u0634\u062f\u0647 \u0648 \u0628\u0627 \u0627\u06a9\u062b\u0631 \u0645\u0634\u062a\u0631\u06cc\u0627\u0646 \u0627\u06cc\u0645\u06cc\u0644 \u0633\u0627\u0632\u06af\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0645\u062b\u0627\u0644:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight html\"><code><span class=\"nt\"><mjml\/><\/span>\n  <span class=\"nt\"><mj-body\/><\/span>\n    <span class=\"nt\"><mj-section\/><\/span>\n      <span class=\"nt\"><mj-column\/><\/span>\n        <span class=\"nt\"><mj-text\/><\/span>\n          Bonjour le monde !\n        <span class=\"nt\"\/>\n        <span class=\"nt\"><mj-button> <span class=\"na\">href=<\/span><span class=\"s\">\"https:\/\/example.com\"<\/span><span class=\"nt\">&gt;<\/span>Cliquez ici<span class=\"nt\"\/><\/mj-button><\/span>\n      <span class=\"nt\"\/>\n    <span class=\"nt\"\/>\n  <span class=\"nt\"\/>\n<span class=\"nt\"\/>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u06a9\u062f \u0633\u0627\u062f\u0647 MJML \u062f\u0631 \u06cc\u06a9 HTML \u06a9\u0627\u0645\u0644 \u0628\u0627 \u062a\u0645\u0627\u0645 \u0686\u0631\u0627\u063a\u0647\u0627 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0645\u06cc \u0634\u0648\u062f <code><\/p>\n<table> n\u00e9cessaires et du CSS inline pour assurer un rendu parfait.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Les_avantages_de_MJML\"><\/span>\n<p>  Les avantages de MJML<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1_Responsive_by_design\"><\/span>\n<p>  1. Responsive by design<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Chaque composant MJML est con\u00e7u pour \u00eatre responsive par d\u00e9faut. Plus besoin d\u2019\u00e9crire des media queries complexes ou de tester chaque mise en page sur mobile.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_Compatibilite_multi-clients\"><\/span>\n<p>  2. Compatibilit\u00e9 multi-clients<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>MJML g\u00e9n\u00e8re un HTML optimis\u00e9 pour les principaux clients mails, r\u00e9duisant consid\u00e9rablement les risques de bugs d'affichage entre Outlook, Gmail, Yahoo, etc.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3_Gain_de_temps\"><\/span>\n<p>  3. Gain de temps<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Le code MJML est plus court et plus lisible que le HTML traditionnel pour emails. Moins de lignes de code, moins de complexit\u00e9, donc plus de productivit\u00e9.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"4_Integration_facile\"><\/span>\n<p>  4. Int\u00e9gration facile<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Les emails g\u00e9n\u00e9r\u00e9s peuvent \u00eatre directement int\u00e9gr\u00e9s dans des outils comme Mailchimp, Brevo (ex-Sendinblue), ou tout autre outil d\u2019emailing.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"5_Previsualisation_en_temps_reel\"><\/span>\n<p>  5. Pr\u00e9visualisation en temps r\u00e9el<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Gr\u00e2ce aux outils comme l\u2019\u00e9diteur en ligne de MJML ou des extensions pour VS Code, vous pouvez pr\u00e9visualiser vos emails en temps r\u00e9el tout en d\u00e9veloppant.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Quand_utiliser_MJML\"><\/span>\n<p>  Quand utiliser MJML ?<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Si vous d\u00e9veloppez des newsletters r\u00e9guli\u00e8rement.<\/li>\n<li>Si vous cherchez \u00e0 gagner du temps tout en garantissant un rendu parfait.<\/li>\n<li>Si vous voulez \u00e9viter les tracas li\u00e9s \u00e0 la compatibilit\u00e9 entre clients mails.<\/li>\n<\/ul>\n<section class=\"crayons-card crayons-card--secondary text-padding mb-4 print-hidden\" id=\"bottom-content-read-next\">\n<h2 class=\"crayons-subtitle-1\"><span class=\"ez-toc-section\" id=\"Read_next\"><\/span>Read next<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"flex items-center\">\n          <span class=\"crayons-avatar crayons-avatar--xl m:crayons-avatar--2xl mr-4 shrink-0\"><br \/>\n              <img decoding=\"async\" loading=\"lazy\" alt=\"\u062a\u0635\u0648\u06cc\u0631 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 Reyronald\" class=\"crayons-avatar__image\" width=\"100\" height=\"100\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=100,height=100,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F253972%2F51d56f0e-30e6-419e-803d-a752006a2da7.jpeg\" title=\"\"><br \/>\n          <\/span><\/p>\n<div>\n<h3 class=\"fs-xl mb-0 lh-tight\"><span class=\"ez-toc-section\" id=\"Dealing_with_open_database_transactions_in_Prisma\"><\/span>Dealing with open database transactions in Prisma<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"opacity-75 pt-1\">\n              Ronald Rey - <time datetime=\"2025-02-23T04:58:32Z\">Feb 23<\/time>\n            <\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"flex items-center\">\n          <span class=\"crayons-avatar crayons-avatar--xl m:crayons-avatar--2xl mr-4 shrink-0\"><br \/>\n              <img decoding=\"async\" loading=\"lazy\" alt=\"\u062a\u0635\u0648\u06cc\u0631 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 JPS27CSE\" class=\"crayons-avatar__image\" width=\"100\" height=\"100\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=100,height=100,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F424526%2Fcd6f0436-e2ed-48ce-b861-2233c9752673.jpg\" title=\"\"><br \/>\n          <\/span><\/p>\n<div>\n<h3 class=\"fs-xl mb-0 lh-tight\"><span class=\"ez-toc-section\" id=\"%DA%86%D8%B1%D8%A7_%D8%AA%D9%88%D8%B3%D8%B9%D9%87_%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%AD%D8%AF%D8%A7%DA%A9%D8%AB%D8%B1_%DA%A9%D8%A7%D8%B1%D8%A2%DB%8C%DB%8C_%D8%A8%D8%A7%DB%8C%D8%AF_%D9%88%D8%B8%D8%A7%DB%8C%D9%81_%D8%AE%D9%88%D8%AF_%D8%B1%D8%A7_%D8%AF%D8%B3%D8%AA%D9%87_%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D9%86%D9%86%D8%AF\"><\/span>\u0686\u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0628\u0631\u0627\u06cc \u062d\u062f\u0627\u06a9\u062b\u0631 \u06a9\u0627\u0631\u0622\u06cc\u06cc \u0628\u0627\u06cc\u062f \u0648\u0638\u0627\u06cc\u0641 \u062e\u0648\u062f \u0631\u0627 \u062f\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u06a9\u0646\u0646\u062f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"opacity-75 pt-1\">\n<p>              \u062c\u06a9 \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0633\u0648\u0631\u0646 - <time datetime=\"2025-02-22T17:23:35Z\">22 \u0641\u0648\u0631\u06cc\u0647<\/time>\n            <\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"flex items-center\">\n          <span class=\"crayons-avatar crayons-avatar--xl m:crayons-avatar--2xl mr-4 shrink-0\"><br \/>\n              <img decoding=\"async\" loading=\"lazy\" alt=\"\u062a\u0635\u0648\u06cc\u0631 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 vasanthvnr_31\" class=\"crayons-avatar__image\" width=\"100\" height=\"100\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=100,height=100,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2772314%2F0b8330df-7565-4dd6-b316-c28899633da8.jpg\" title=\"\"><br \/>\n          <\/span><\/p>\n<div>\n<h3 class=\"fs-xl mb-0 lh-tight\"><span class=\"ez-toc-section\" id=\"%D8%A8%D8%A7%D8%B2%DB%8C_%D8%A8%D8%A7_Hashmap_%D8%9B_%D8%AF%D8%B1_%D8%AC%D8%A7%D9%88%D8%A7\"><\/span>\u0628\u0627\u0632\u06cc \u0628\u0627 Hashmap <> () \u061b \u062f\u0631 \u062c\u0627\u0648\u0627<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"opacity-75 pt-1\">\n<p>              VASANTH S - <time datetime=\"2025-02-18T14:35:29Z\">18 \u0641\u0648\u0631\u06cc\u0647<\/time>\n            <\/p>\n<\/p><\/div>\n<\/p><\/div>\n<div class=\"flex items-center\">\n          <span class=\"crayons-avatar crayons-avatar--xl m:crayons-avatar--2xl mr-4 shrink-0\"><br \/>\n              <img decoding=\"async\" loading=\"lazy\" alt=\"\u062a\u0635\u0648\u06cc\u0631 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 \u0648\u06cc\u0644\u06cc\u0627\u0645\u0633\u0645\u06cc\u062a\u0647\" class=\"crayons-avatar__image\" width=\"100\" height=\"100\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=100,height=100,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1309924%2F65a451a5-b428-4b83-86dc-9150318c563b.png\" title=\"\"><br \/>\n          <\/span><\/p>\n<div>\n<h3 class=\"fs-xl mb-0 lh-tight\"><span class=\"ez-toc-section\" id=\"5_API_%D9%87%D8%A7%DB%8C_%D8%A8%D8%B1%D8%AA%D8%B1_%D8%AF%D8%A7%D8%AF%D9%87_%D9%85%D8%A7%D9%84%DB%8C_%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%B3%D8%A7%D8%AE%D8%AA_%DB%8C%DA%A9_%D8%B1%D8%AF%DB%8C%D8%A7%D8%A8_%D9%82%D8%AF%D8%B1%D8%AA%D9%85%D9%86%D8%AF_%D8%B3%D9%87%D8%A7%D9%85_%D8%B3%D9%87%D8%A7%D9%85_%E2%9A%A1\"><\/span>5 API \u0647\u0627\u06cc \u0628\u0631\u062a\u0631 \u062f\u0627\u062f\u0647 \u0645\u0627\u0644\u06cc \u0631\u0627\u06cc\u06af\u0627\u0646 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0631\u062f\u06cc\u0627\u0628 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0633\u0647\u0627\u0645 \u0633\u0647\u0627\u0645 \u26a1<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p class=\"opacity-75 pt-1\">\n<p>              \u0648\u06cc\u0644\u06cc\u0627\u0645 \u0627\u0633\u0645\u06cc\u062a - <time datetime=\"2025-02-21T09:51:58Z\">21 \u0641\u0648\u0631\u06cc\u0647<\/time>\n            <\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/section>\n<div id=\"global-signup-modal\" class=\"authentication-modal hidden\">\n<div class=\"authentication-modal__container\">\n<figure class=\"authentication-modal__image-container\">\n      <img decoding=\"async\" class=\"authentication-modal__image\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=190,height=,fit=scale-down,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8j7kvp660rqzt99zui8e.png\" alt=\"\u062c\u0627\u0645\u0639\u0647 \u0645\u062c\u0644\u0644\" loading=\"lazy\" title=\"\"><br \/>\n    <\/figure>\n<div class=\"authentication-modal__content\">\n<p class=\"authentication-modal__description\">\n<p>          \u0645\u0627 \u0645\u06a9\u0627\u0646\u06cc \u0647\u0633\u062a\u06cc\u0645 \u06a9\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u0647\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0645\u06cc \u06af\u0630\u0627\u0631\u0646\u062f \u060c \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0634\u063a\u0644 \u062e\u0648\u062f \u0631\u0627 \u0631\u0634\u062f \u0645\u06cc \u062f\u0647\u0646\u062f.\n      <\/p>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<\/table>\n<p><\/code><\/p>\n<\/table>\n<p><\/code><\/li>\n<\/ul>\n<\/table>\n<p><\/code><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0627\u06cc\u0645\u06cc\u0644 \u062f\u0631 HTML \u06cc\u06a9 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u062a. \u0628\u06cc\u0646 \u0686\u0631\u0627\u063a\u0647\u0627 \u00e0 r\u00e9p\u00e9tition, le CSS inline *obligatoire * et les nombreux clients mails qui interpr\u00e8tent le code diff\u00e9remment, cr\u00e9er une newsletter responsive et compatible partout peut vite devenir un cauchemar. Mais il existe une solution qui change la donne : MJML. Pourquoi coder des emails &hellip;<\/p>\n","protected":false},"author":2,"featured_media":98792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm18o0kxqr2tgpa3b2jyg.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-98791","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/98791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=98791"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/98791\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/98792"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=98791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=98791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=98791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}