{"id":25709,"date":"2026-09-22T13:42:28","date_gmt":"2026-09-22T13:42:28","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/"},"modified":"2026-09-22T13:42:28","modified_gmt":"2026-09-22T13:42:28","slug":"gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/","title":{"rendered":"G\u00e9rez les emails entrants comme un pro [API de Mailgun 2.0]"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">C&rsquo;est comme un vieil album photo de famille en remontant si loin sur notre blog\u00a0! Cet article a \u00e9t\u00e9 publi\u00e9 pour la premi\u00e8re fois en 2011.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;envoi d&#8217;emails \u00e9tait autrefois difficile, mais avec l&rsquo;outil Mailgun\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/api_reference.html\" target=\"_tabs\" rel=\"noopener noreferrer\">API d&rsquo;envoi d&#8217;emails<\/a>\u00a0nous sommes all\u00e9s au-del\u00e0 du SMTP et du MIME pour en faire une exp\u00e9rience simple, et j&rsquo;oserais dire, agr\u00e9able.<\/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-7052\"><p class=\"h5 m-0\" id=\"toc-title-7052\">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=\"#les-routages-mailgun-a-la-rescousse\">Les routages Mailgun \u00e0 la rescousse\u00a0!<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#gerez-les-emails-entrants-comme-un-pro-api-de-mailgun-2-0\">G\u00e9rez les emails entrants comme un pro [API de Mailgun 2.0]<\/a><\/div><\/div><\/nav>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-5059\" width=\"190\" height=\"143\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/incoming.jpeg\" alt=\"Baby with helmet with the word &quot;Incoming!&quot;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Mais si votre application doit engager des conversations par email, comme c&rsquo;est souvent le cas avec les applications d&rsquo;entreprise, l&rsquo;envoi ne repr\u00e9sente m\u00eame pas la moiti\u00e9 du travail. Imaginons que vous souhaitiez cr\u00e9er un bot bas\u00e9 sur les emails qui s&rsquo;int\u00e8gre au flux de travail de votre application d&rsquo;entreprise. Pensez aux obstacles que vous devriez surmonter\u00a0:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Probl\u00e8mes d&rsquo;acheminement<\/b>. Les messages entrants doivent d&rsquo;une mani\u00e8re ou d&rsquo;une autre atteindre votre application. Cela signifie qu&rsquo;il doit y avoir un enregistrement MX quelque part qui pointe vers un serveur de messagerie, capable de transf\u00e9rer l&#8217;email entrant dans votre code. Il y a de nombreux pi\u00e8ges ici. L&rsquo;un d&rsquo;eux est que vous souhaitez probablement g\u00e9n\u00e9rer des rebonds \u00ab\u00a0messagerie non valide\u00a0\u00bb appropri\u00e9s pour avertir les exp\u00e9diteurs s&rsquo;ils ont fait une erreur de frappe dans l&rsquo;adresse.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Probl\u00e8mes de gestion du spam<\/b>. Une fois que vous commencez \u00e0 accepter des emails pour un domaine MX donn\u00e9, vous devez vous rendre compte qu&rsquo;\u00e0 terme, la plupart des emails entrants seront du spam. Et m\u00eame si votre politique d&rsquo;acceptation des emails est bas\u00e9e sur une liste d&rsquo;autorisation, il n&rsquo;est pas toujours souhaitable que votre application g\u00e8re les attaques de spam.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Probl\u00e8mes d&rsquo;analyse MIME.<\/b>\u00a0Nous en avons d\u00e9j\u00e0 parl\u00e9, mais l&rsquo;analyse du format MIME est un exercice douloureux dans la plupart des langages de programmation. Les biblioth\u00e8ques d&rsquo;analyse MIME ne sont pas nombreuses et beaucoup d&rsquo;entre elles souffrent d&rsquo;une faible tol\u00e9rance au trafic r\u00e9el.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Contenu des messages.<\/b>\u00a0Vos probl\u00e8mes d&rsquo;analyse vont bien au-del\u00e0 de MIME. La plupart des emails entrants sont g\u00e9n\u00e9ralement des r\u00e9ponses \u00e0 des messages envoy\u00e9s pr\u00e9c\u00e9demment et vous souhaitez g\u00e9n\u00e9ralement supprimer les \u00e9normes parties cit\u00e9es. Souvent, il est \u00e9galement souhaitable d&rsquo;extraire la signature d&rsquo;une personne du corps d&rsquo;un message.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cela semble assez intimidant pour quelque chose d&rsquo;aussi simple que d&rsquo;ins\u00e9rer un extrait de texte dans une application. Ne serait-il pas agr\u00e9able d&rsquo;avoir quelque chose de similaire \u00e0\u00a0<a href=\"http:\/\/www.sinatrarb.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Sinatra<\/a>\u00a0ou\u00a0<a href=\"http:\/\/flask.pocoo.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Flask<\/a>\u00a0et de pouvoir dire simplement en Python\u00a0:<\/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                                Python                            <\/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-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                     @email_in(&quot;.*@myapp.com&quot;)rn    def incoming_message(message_obj):rn      # access various parts of the fully parsed incoming message:rn      message_obj.bodyrn      message_obj.body_without_quoted_textrn      message_obj.sender_signaturern    # stuff that matters:rn      make_profit_from(message_obj)\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\">Les adeptes de Ruby adorent les blocs. Les adeptes de Ruby adoreraient pouvoir dire\u00a0:<\/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                                Ruby                            <\/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-Ruby\">\r\n                                <code id=\"code_0_content\" class=\"language-Ruby\">\r\n\r\n                                     email_in &quot;.*@myapp.com&quot; do |message_obj|rn      # sweet profit-making code...rn    end\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\">L&rsquo;id\u00e9e derri\u00e8re ces exemples de code est similaire au m\u00e9canisme de routage pr\u00e9sent dans les frameworks MVC modernes, mais au lieu d&rsquo;associer des URL \u00e0 des actions de contr\u00f4leur, nous voulons d\u00e9finir des routes qui associent un mod\u00e8le d&rsquo;adresse de destinataire \u00e0 une fonction de votre code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais comment proc\u00e9dez-vous pour impl\u00e9menter email_in() compte tenu des difficult\u00e9s \u00e9num\u00e9r\u00e9es ci-dessus\u00a0?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Les routages Mailgun \u00e0 la rescousse\u00a0!<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nous les avons con\u00e7us sp\u00e9cifiquement avec ce cas d&rsquo;utilisation \u00e0 l&rsquo;esprit et ils constituent, de loin, le moyen le plus agr\u00e9able de cr\u00e9er une application de messagerie bidirectionnelle par email. Faites-nous confiance, nous sommes des docteurs en emails\u00a0!\u00a0\u00a0Mais tr\u00eave de bavardages, passons \u00e0 l&rsquo;action.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tout d&rsquo;abord, d\u00e9finissons une nouvelle route dans le panneau de contr\u00f4le Mailgun. Cette route associera l&rsquo;adresse du destinataire \u00e0 l&rsquo;expression r\u00e9guli\u00e8re \u00ab\u00a0.*@myapp.com\u00a0\u00bb, et s&rsquo;il y a une correspondance, elle fera deux choses\u00a0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Elle analysera le message et l&rsquo;enverra via POST \u00e0 l&rsquo;URL \u00ab\u00a0\/emailin\u00a0\u00bb de votre application.<\/li>\n\n\n\n<li>Elle transf\u00e9rera \u00e9galement la copie du message \u00e0 la messagerie d&rsquo;un d\u00e9veloppeur, par exemple developer@myapp.com<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-5060\" width=\"500\" height=\"229\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tumblr_lub6qetjH61qdp23h.png\" alt=\"Mailgun&apos;s control panel\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tumblr_lub6qetjH61qdp23h.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tumblr_lub6qetjH61qdp23h-300x137.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nous pouvons d\u00e9sormais g\u00e9rer les messages envoy\u00e9s \u00e0 @myapp.com en ajoutant le code suivant dans l&rsquo;application web\u00a0:<\/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                                    @app.route(&quot;\/mailin&quot;, methods=[&quot;POST&quot;])  rndef mailin():  rn    # see if the message is spam:rn    is_spam = request.form[&#039;X-Mailgun-SFlag&#039;] == &#039;Yes&#039;rnrn    # access some of the email parsed values:rn    request.form[&#039;From&#039;]rn    request.form[&#039;To&#039;]rn    request.form[&#039;subject&#039;]rnrn    # stripped text does not include the original (quoted) message, only whatrn    # a user has typed:rn    request.form[&#039;stripped-text&#039;]rn    request.form[&#039;stripped-signature&#039;]rnrn    # enumerate through all attachments in the message and savern    # them to disk with their original filenames:rn    for attachment in request.files.values():rn        attachment.filenamern        data = attachment.stream.read()rn        with open(attachment.filename, &quot;w&quot;) as f:rn            f.write(data)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<h2 class=\"wp-block-heading\">G\u00e9rez les emails entrants comme un pro [API de Mailgun 2.0]<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Envoyons un message de test en utilisant Gmail \u00e0 notre application web et voyons ce qui est envoy\u00e9.<br>\nVoici la capture d&rsquo;\u00e9cran du message tel qu&rsquo;il appara\u00eet dans GMail. Remarquez qu&rsquo;il contient le corps r\u00e9el de ce qui a \u00e9t\u00e9 \u00e9crit (stripped-text), la signature et la partie cit\u00e9e qui, dans la plupart des cas, n&rsquo;est pas pertinente\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-5061\" width=\"500\" height=\"344\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ev.png\" alt=\"Test email on web app from Ev Kontsevoy\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ev.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ev-300x206.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Les donn\u00e9es envoy\u00e9es via POST sont affich\u00e9es ci-dessous sous la forme d&rsquo;une requ\u00eate MultiDict Python extraite. Notez qu&rsquo;en plus des param\u00e8tres synth\u00e9tiques comme \u00ab\u00a0recipient\u00a0\u00bb ou \u00ab\u00a0stripped-text\u00a0\u00bb, Mailgun publie \u00e9galement tous les en-t\u00eates MIME dans l&rsquo;application, vous avez donc un acc\u00e8s complet \u00e0 tout\u00a0:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Param\u00e8tres POST (extraits dans le journal sous forme de MultiDict Python)<\/b><\/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                                    (&#039;From&#039;, u&#039;Ev Kontsevoy &#039;),rn(&#039;sender&#039;, u&#039;ev@mailgunhq.com&#039;),rn(&#039;To&#039;, u&#039;Awesome Bot &#039;),rn(&#039;attachment-count&#039;, u&#039;1&#039;),rn(&#039;Subject&#039;, u&#039;Re: Your application&#039;)])rn(&#039;stripped-text&#039;, u&#039;My application is attached.nThanks.&#039;),rn(&#039;stripped-html&#039;, u&#039;HTML version of stripped-text&#039;),rn(&#039;body-html&#039;, u&#039;[full html version of the message]&#039;),rn(&#039;body-plain&#039;, u&#039;[full text version of the message]&#039;),rn(&#039;stripped-signature&#039;, u&#039;-- nEv Kontsevoy,nCo-founder and CEO of Mailgun.net  - the emailnplatform for developers.&#039;),rn(&#039;recipient&#039;, u&#039;bot@hello.mailgun.org&#039;),rn(&#039;subject&#039;, u&#039;Re: Your application&#039;),rn(&#039;timestamp&#039;, u&#039;1320695889&#039;),rn(&#039;signature&#039;, u&#039;b8869291bd72f1ad38238429c370cb13a109eab01681a31b1f4a2751df1e3379&#039;),rn(&#039;token&#039;, u&#039;9ysf1gfmskxxsp1zqwpwrqf2qd4ctdmi5e$k-ajx$x0h846u88&#039;),rn(&#039;In-Reply-To&#039;, u&#039;Message-Id-of-original-message&#039;),rn(&#039;Date&#039;, u&#039;Mon, 7 Nov 2011 11:58:06 -0800&#039;),rn(&#039;Message-Id&#039;, u&#039;message-id-goes-here&#039;),rn(&#039;X-Originating-Ip&#039;, u&#039;[216.156.80.78]&#039;),rnrn# NOTE: ALL message fields are parsed and pasted. If some fields (like &quot;Cc&quot;) arern# missing here it only means they were absent from the message.\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\"><strong>Fichiers envoy\u00e9s via POST\u00a0:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>('attachment-1', FileStorage: 'application.pdg')<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Faisons le point. Qu&rsquo;avons-nous l\u00e0\u00a0?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Le trafic des emails entrants est compar\u00e9 \u00e0 une expression r\u00e9guli\u00e8re appliqu\u00e9e au destinataire d&rsquo;un message.<\/li>\n\n\n\n<li>Les messages correspondants sont analys\u00e9s, v\u00e9rifi\u00e9s pour le spam et envoy\u00e9s via HTTP POST \u00e0 l&rsquo;URL de votre application.<\/li>\n\n\n\n<li>Les parties cit\u00e9es du message sont s\u00e9par\u00e9es (supprim\u00e9es), la signature est d\u00e9tect\u00e9e.<\/li>\n\n\n\n<li>Si votre application est en panne et ne r\u00e9pond pas, les messages seront mis en file d&rsquo;attente et des tentatives de livraison ult\u00e9rieures seront effectu\u00e9es pendant un maximum de 3 jours.<\/li>\n\n\n\n<li>De plus, les messages correspondants peuvent \u00e9ventuellement \u00eatre stock\u00e9s dans une messagerie \u00e0 des fins d&rsquo;archivage, de sauvegarde ou de d\u00e9bogage.<\/li>\n\n\n\n<li>Aucune de ces complexit\u00e9s n&rsquo;a plus d&rsquo;importance pour vous. Vous \u00eates occup\u00e9 \u00e0 \u00e9crire du code qui g\u00e9n\u00e8re de beaux profits.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Et au fait, la manipulation des routes d&#8217;emails peut se faire\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/api-routes.html\" target=\"_tabs\" rel=\"noopener noreferrer\">par programmation via une API<\/a>. Cela vous permet de cr\u00e9er un d\u00e9corateur magique @email_in() de type Flask\/Sinatra qui lierait le tout.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les routes de Mailgun peuvent faire bien plus qu&rsquo;une simple correspondance d&rsquo;adresse de destinataire. Elles prennent en charge les captures d&rsquo;expressions r\u00e9guli\u00e8res, le comportement par d\u00e9faut si aucune autre correspondance n&rsquo;est trouv\u00e9e (match-if-nothing-else), elles ont une priorit\u00e9 d&rsquo;ex\u00e9cution, il s&rsquo;agit essentiellement d&rsquo;un langage de programmation de routage d&#8217;emails simple.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et voil\u00e0. Tout simplement g\u00e9nial. Maintenant, mettons-nous au travail et d\u00e9barrassons le monde des stupides emails \u00ab\u00a0no-reply@\u00a0\u00bb. Il est grand temps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 bient\u00f4t\u00a0!<br>\n\u2014<br>\nLes Mailgunners<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mise \u00e0 jour\u00a0: n&rsquo;h\u00e9sitez pas \u00e0 participer \u00e0 la\u00a0<a href=\"http:\/\/news.ycombinator.com\/item?id=3208376\" target=\"_tabs\" rel=\"noopener noreferrer\">discussion sur HN<\/a><\/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_1b757e77ba39a4f57eaffa0ac2e5db8e\">\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_1b757e77ba39a4f57eaffa0ac2e5db8e\">\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","protected":false},"excerpt":{"rendered":"<p>C&rsquo;est comme un vieil album photo de famille en remontant si loin sur notre blog\u00a0! Cet article a \u00e9t\u00e9 publi\u00e9 pour la premi\u00e8re fois en 2011.<\/p>\n","protected":false},"author":13,"featured_media":4555,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[22],"class_list":["post-25709","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>G\u00e9rez les emails entrants comme un pro API de Mailgun 2.0 - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"G\u00e9rez tous vos besoins en mati\u00e8re d&#039;emails entrants gr\u00e2ce au routage des emails entrants de Mailgun. Vous voulez savoir comment nos routes ont vu le jour\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\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"G\u00e9rez les emails entrants comme un pro API de Mailgun 2.0 - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"G\u00e9rez tous vos besoins en mati\u00e8re d&#039;emails entrants gr\u00e2ce au routage des emails entrants de Mailgun. Vous voulez savoir comment nos routes ont vu le jour\u00a0? En savoir plus \u2013\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/\" \/>\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=\"5 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\\\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\\\/\",\"name\":\"G\u00e9rez les emails entrants comme un pro API de Mailgun 2.0 - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"datePublished\":\"2026-09-22T13:42:28+00:00\",\"description\":\"G\u00e9rez tous vos besoins en mati\u00e8re d'emails entrants gr\u00e2ce au routage des emails entrants de Mailgun. Vous voulez savoir comment nos routes ont vu le jour\u00a0? En savoir plus \u2013\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/product\\\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\\\/#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\\\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\\\/#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\":\"G\u00e9rez les emails entrants comme un pro [API de Mailgun 2.0]\"}]},{\"@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":"G\u00e9rez les emails entrants comme un pro API de Mailgun 2.0 - Transactional Email API Service For Developers | Mailgun","description":"G\u00e9rez tous vos besoins en mati\u00e8re d'emails entrants gr\u00e2ce au routage des emails entrants de Mailgun. Vous voulez savoir comment nos routes ont vu le jour\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\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/","og_locale":"fr_FR","og_type":"article","og_title":"G\u00e9rez les emails entrants comme un pro API de Mailgun 2.0 - Transactional Email API Service For Developers | Mailgun","og_description":"G\u00e9rez tous vos besoins en mati\u00e8re d'emails entrants gr\u00e2ce au routage des emails entrants de Mailgun. Vous voulez savoir comment nos routes ont vu le jour\u00a0? En savoir plus \u2013","og_url":"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/","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":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/","url":"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/","name":"G\u00e9rez les emails entrants comme un pro API de Mailgun 2.0 - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","datePublished":"2026-09-22T13:42:28+00:00","description":"G\u00e9rez tous vos besoins en mati\u00e8re d'emails entrants gr\u00e2ce au routage des emails entrants de Mailgun. Vous voulez savoir comment nos routes ont vu le jour\u00a0? En savoir plus \u2013","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/blog\/product\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/#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\/gerer-les-emails-entrants-comme-un-pro-api-mailgun-2-0\/#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":"G\u00e9rez les emails entrants comme un pro [API de Mailgun 2.0]"}]},{"@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\/25709","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\/25709\/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=25709"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog_category?post=25709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}