{"id":18193,"date":"2025-01-28T04:12:02","date_gmt":"2025-01-28T04:12:02","guid":{"rendered":"https:\/\/www.mailgun.com\/resources\/case-studies\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/"},"modified":"2026-09-03T15:05:45","modified_gmt":"2026-09-03T15:05:45","slug":"comment-userfox-envoie-suit-les-emails-dans-son-application-ruby","status":"publish","type":"case-studies","link":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/","title":{"rendered":"Comment AdRoll envoie &amp; suit les emails dans son application Ruby \u00e0 l&rsquo;aide de l&rsquo;API de Mailgun"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Bonjour, je suis Peter, PDG d&rsquo;userfox. userfox aide les entreprises \u00e0 envoyer des emails de bienvenue meilleurs et plus efficaces. Aujourd&rsquo;hui, la plupart des entreprises accueillent leurs nouveaux clients avec un unique email du type \u00ab bienvenue sur mon produit ! \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le probl\u00e8me avec cela, c&rsquo;est que les gens sont occup\u00e9s. Vous oubliez que vous vous \u00eates inscrit \u00e0 des services, vous ne vous souvenez que des services dont vous avez besoin ou que vous aimez, et cela ne se produit g\u00e9n\u00e9ralement pas \u00e0 la seconde o\u00f9 vous vous inscrivez.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">userfox envoie donc une s\u00e9quence d&#8217;emails : lors de votre inscription, quelques jours plus tard, une semaine plus tard, plus tard dans le mois, etc. L&rsquo;industrie appelle cela une s\u00e9quence \u00ab goutte-\u00e0-goutte \u00bb. Ces emails contiennent des trucs et astuces sympas sur votre produit, des anecdotes sur l&rsquo;identit\u00e9 de vos clients et pourquoi ils vous aiment, et ainsi de suite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous faisons cela tr\u00e8s simplement. En fait, il est beaucoup plus rapide d&rsquo;int\u00e9grer userfox \u00e0 votre application que d&rsquo;envoyer votre unique email de bienvenue m\u00e9diocre. C&rsquo;est une \u00e9vidence, n&rsquo;est-ce pas ? collez simplement un extrait de javascript dans votre pied de page \u2013 et voil\u00e0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment nous avons con\u00e7u notre application<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Framework : Ruby on Rails<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Automatisation des emails &amp; infrastructure : Mailgun<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Base de donn\u00e9es : MongoHQ pour MongoDB<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tests : Citrus<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment nous utilisons Mailgun<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nous sommes une entreprise d&#8217;email marketing. Nous ne sommes pas une entreprise d&rsquo;infrastructure, c&rsquo;est pourquoi nous comptons sur Mailgun pour faire des choses que nous aurions d\u00fb construire autrement. Mailgun d\u00e9livre tous les emails de nos clients. L&rsquo;API de statistiques de Mailgun alimente les statistiques d&rsquo;userfox. Pourquoi r\u00e9inventer la roue avec ces \u00e9l\u00e9ments, alors que Mailgun fait un travail si g\u00e9nial ? D&rsquo;ailleurs, avez-vous d\u00e9j\u00e0 essay\u00e9 de g\u00e9rer un serveur d&#8217;email ? Mailgun fait un travail divin\u2026.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notre impl\u00e9mentation de base utilisant Mailgun ressemble \u00e0 ceci. Nous construisons les donn\u00e9es du message ensemble :<\/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                                    data = {:to =&gt; email, :from =&gt; get_from(trigger), :subject =&gt; get_subject(info, email,  \r\ntrigger), :text =&gt; &quot;#{text}&quot;, :html =&gt; &quot;#{html}&quot;, &quot;h:X-Mailgun-Variables&quot; =&gt; &quot;{&quot;id&quot;: &quot;&quot; + id + &quot;&quot;}&quot;}\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\">Et ensuite nous le mettons en file d&rsquo;attente dans une t\u00e2che via une requ\u00eate POST REST. Mailgun permet l&rsquo;envoi via SMTP mais nous pr\u00e9f\u00e9rons la flexibilit\u00e9 et la rapidit\u00e9 qui accompagnent l&rsquo;utilisation de l&rsquo;API. Notre requ\u00eate POST ressemble \u00e0 ceci.<\/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                                       RestClient.post Userfox::Application.config.mailgun_endpoint + &#039;\/&#039; + domain + &#039;\/messages&#039;, data, :Authorization =&gt; Userfox::Application.config.mailgun_auth {  \r\n      |response, request, result|\r\n      return response\r\n    }\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\">Mailgun est vraiment puissant lorsqu&rsquo;il s&rsquo;agit d&rsquo;envoyer des messages. Mais nous g\u00e9rons \u00e9galement toutes nos statistiques \u00e0 partir de Mailgun. Lorsqu&rsquo;un message est envoy\u00e9, nous voulons savoir s&rsquo;il a \u00e9t\u00e9 livr\u00e9 et ce qu&rsquo;il est devenu. A-t-il \u00e9t\u00e9 ouvert, cliqu\u00e9, signal\u00e9 comme spam ? L&rsquo;utilisateur a-t-il choisi de se d\u00e9sinscrire (bien s\u00fbr, cela n&rsquo;arriverait jamais) ? Toutes ces donn\u00e9es peuvent \u00eatre envoy\u00e9es \u00e0 votre application avec des webhooks. Par exemple, si vous souhaitiez publier dans votre base de donn\u00e9es lorsqu&rsquo;un utilisateur clique sur un lien, vous pourriez proc\u00e9der ainsi :<\/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                                    AdRoll Code 2require &#039;openssl&#039;  \r\ndef verify(api_key, token, timestamp, signature)  \r\n  return signature == OpenSSL::HMAC.hexdigest(\r\n                          OpenSSL::Digest::Digest.new(&#039;sha256&#039;),\r\n                          api_key,\r\n                          &#039;%s%s&#039; % [timestamp, token])\r\nend\u00a0class PostsController  &quot;Name&quot;, :title =&gt; &quot;Title&quot;,\r\n                         :content =&gt; &quot;#{user} clicked on #{link}&quot;).save\r\n      end\r\n    end\r\n    render :text =&gt; &quot;OK&quot;\r\n  end\r\nend\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\">Cela vous indiquerait qu&rsquo;un utilisateur a cliqu\u00e9 sur un email et vous donnerait des informations sur l&rsquo;identit\u00e9 de la personne qui a cliqu\u00e9. Vous pouvez faire cela pour les clics, les ouvertures, les d\u00e9sinscriptions, les plaintes pour spam, les rebonds, les \u00e9checs et les livraisons.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si vous avez une entreprise qui doit communiquer avec ses clients, essayez \u00a0<a href=\"http:\/\/www.userfox.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">userfox<\/a>\u00a0. Nous avons fait le plus dur pour vous.<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"quote hub-quote longform-spacings d-flex flex-column rounded-lg px-5 py-6 px-md-6 py-md-7 p-lg-7 shadow-sm bg-primary\" data-theme=\"light\">\r\n\r\n        <div class=\"quote-logo mb-3\">\r\n                            <img decoding=\"async\" class=\"quote-logo\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/omnisend.svg\" alt=\"Logo de citation de Paulius Milisauskas\">\r\n                    <\/div>\r\n\r\n        <blockquote class=\"quote-content content-body m-0 text-body-color\" id=\"quote-block-9c0567ceff44496b487c8f10dd1136be\">\r\n            \u00ab\u00a0L\u2019utilisation de Mailgun nous permet d\u2019assurer un meilleur service \u00e0 nos marketeurs. Ils comptent sur nous, et nous comptons sur Mailgun : et cette relation nous aide \u00e0 maintenir notre cr\u00e9dibilit\u00e9 aupr\u00e8s de nos clients.\u00a0\u00bb        <\/blockquote>\r\n\r\n                    <div class=\"d-flex gap-3 mt-5\">\r\n                                    <div>\r\n                        <img decoding=\"async\" width=\"72\" height=\"72\" class=\"rounded-lg quote-author\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/Portrait-Paulius-Milisauskas-Omnisend.png\" alt=\"Photo de Paulius Milisauskas\">\r\n                    <\/div>\r\n                                <div class=\"d-flex flex-column align-self-center fs-sm\">\r\n                    <cite class=\"mb-0 fw-bold text-accent fst-normal\" aria-describedby=\"quote-block-9c0567ceff44496b487c8f10dd1136be\">\r\n                        Paulius Milisauskas                    <\/cite>\r\n                                            <span class=\"mb-0 text-body-color\">Vice-pr\u00e9sident des op\u00e9rations clients<\/span>\r\n                                    <\/div>\r\n            <\/div>\r\n            <\/div>\r\n\n\n    <div data-content-type=\"longform\" class=\"longform-spacings\">\r\n        <div class=\"cta bg-primary rounded-lg px-5 py-6 p-md-7 px-md-6\">\r\n                    <div class=\"form-subscription\">\r\n                            <div class=\"h4 mb-3\">\r\n                    Tenez-moi au courant ! Recevez d&rsquo;excellentes ressources dans votre bo\u00eete de r\u00e9ception chaque semaine.                <\/div>\r\n                                    <form accept-charset=\"UTF-8\" action=\"\" enctype=\"multipart\/form-data\" data-form-subscription method=\"POST\" style=\"max-width: 400px;\">\r\n                <div class=\"row justify-content-between align-items-top g-2\">\r\n                    <div class=\"col-10\">\r\n                        <input type=\"email\" name=\"email\" class=\"form-control\" placeholder=\"Email\" autocomplete=\"email\" required>\r\n                        <div data-fs=\"error\" role=\"alert\" class=\"invalid-feedback\">\r\n                            Please complete this required field.                        <\/div>\r\n                    <\/div>\r\n                                            <div class=\"col-12 order-last mt-3 fs-xxs\" data-fs=\"acceptance\" style=\"display:none;\">\r\n                            \r\n                                <div class=\"form-check\">\r\n                                    <input id=\"formSubscriptionAcceptance-terms-6806\" class=\"form-check-input\"\r\n                                        type=\"checkbox\" name=\"terms\">\r\n                                    <label for=\"formSubscriptionAcceptance-terms-6806\" class=\"form-check-label text-body-color\">\r\n                                        J&rsquo;ai lu et j&rsquo;accepte les conditions d&rsquo;utilisation.                                        <span class=\"hs-form-required\">*<\/span>\r\n                                    <\/label>\r\n                                <\/div>\r\n\r\n                            \r\n                                <div class=\"form-check\">\r\n                                    <input id=\"formSubscriptionAcceptance-privacy-6791\" class=\"form-check-input\"\r\n                                        type=\"checkbox\" name=\"privacy\">\r\n                                    <label for=\"formSubscriptionAcceptance-privacy-6791\" class=\"form-check-label text-body-color\">\r\n                                        J&rsquo;ai lu et j&rsquo;accepte la politique de confidentialit\u00e9.                                        <span class=\"hs-form-required\">*<\/span>\r\n                                    <\/label>\r\n                                <\/div>\r\n\r\n                                                    <\/div>\r\n                    \r\n                                            <div class=\"col-12 order-last fs-xxs mb-0 mt-2 text-body-color\">\r\n                            Envoyez-moi la newsletter Mailjet. J&rsquo;accepte express\u00e9ment de recevoir la newsletter et je sais que je peux facilement me d\u00e9sabonner \u00e0 tout moment.                        <\/div>\r\n                    \r\n                    <div class=\"col-2\">\r\n                        <button type=\"submit\" value=\"Submit\" aria-label=\"Submit\" class=\"btn btn-secondary btn-icon\">\r\n                            <svg aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/layout\/chevron-right.svg\"><\/svg>\r\n                        <\/button>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <input type=\"hidden\" name=\"formSubscriptionRecaptchaToken\" data-fs=\"recaptcha-token\">\r\n                <input type=\"hidden\" name=\"customListID\" value=\"\">\r\n\r\n            <\/form>\r\n            <div data-fs=\"message-success\" style=\"display: none;\">\r\n                <p class=\"mb-0 mt-2 text-body-color\">\r\n                    D\u00e9couvrez la newsletter de Mailjet chaque mois dans votre bo\u00eete de r\u00e9ception.                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n        <\/div>\r\n    <\/div>\r\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;article d&rsquo;aujourd&rsquo;hui est r\u00e9dig\u00e9 par Peter Clark, PDG d&rsquo;userfox (d\u00e9sormais AdRoll), une formidable nouvelle start-up qui change la fa\u00e7on dont les entreprises communiquent avec leurs clients par email. Ils ont \u00e9t\u00e9 lanc\u00e9s il y a quelques semaines \u00e0 peine, comme vous l&rsquo;avez peut-\u00eatre vu sur Hacker News. Dans l&rsquo;article d&rsquo;aujourd&rsquo;hui, Peter explique ce que fait userfox, comment ils ont con\u00e7u leur application, et un peu comment ils utilisent Mailgun, y compris le code pour le faire ! Bonne lecture.<\/p>\n","protected":false},"author":90,"featured_media":8236,"template":"","meta":{"_acf_changed":true},"class_list":["post-18193","case-studies","type-case-studies","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Comment userfox envoie &amp; suit les emails dans son application Ruby \u00e0 l&#039;aide de l&#039;API de Mailgun | Mailgun<\/title>\n<meta name=\"description\" content=\"Userfox n&#039;est pas une entreprise d&#039;infrastructure, c&#039;est une entreprise d&#039;email marketing. Ils comptent donc sur Mailgun pour faire des choses qu&#039;ils devraient autrement construire, ce qui prend trop de temps. En savoir plus\" \/>\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\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment userfox envoie &amp; suit les emails dans son application Ruby \u00e0 l&#039;aide de l&#039;API de Mailgun | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Userfox n&#039;est pas une entreprise d&#039;infrastructure, c&#039;est une entreprise d&#039;email marketing. Ils comptent donc sur Mailgun pour faire des choses qu&#039;ils devraient autrement construire, ce qui prend trop de temps. En savoir plus\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-03T15:05:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/01\/Mailgun-Case-Study-AdRoll.png\" \/>\n\t<meta property=\"og:image:width\" content=\"592\" \/>\n\t<meta property=\"og:image:height\" content=\"368\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\\\/\",\"name\":\"Comment userfox envoie & suit les emails dans son application Ruby \u00e0 l'aide de l'API de Mailgun | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/Mailgun-Case-Study-AdRoll.png\",\"datePublished\":\"2025-01-28T04:12:02+00:00\",\"dateModified\":\"2026-09-03T15:05:45+00:00\",\"description\":\"Userfox n'est pas une entreprise d'infrastructure, c'est une entreprise d'email marketing. Ils comptent donc sur Mailgun pour faire des choses qu'ils devraient autrement construire, ce qui prend trop de temps. En savoir plus\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/Mailgun-Case-Study-AdRoll.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/Mailgun-Case-Study-AdRoll.png\",\"width\":592,\"height\":368},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Case Studies\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/ressources\\\/etudes-de-cas\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment AdRoll envoie & suit les emails dans son application Ruby \u00e0 l\u2019aide de l\u2019API de Mailgun\"}]},{\"@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 userfox envoie & suit les emails dans son application Ruby \u00e0 l'aide de l'API de Mailgun | Mailgun","description":"Userfox n'est pas une entreprise d'infrastructure, c'est une entreprise d'email marketing. Ils comptent donc sur Mailgun pour faire des choses qu'ils devraient autrement construire, ce qui prend trop de temps. En savoir plus","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\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment userfox envoie & suit les emails dans son application Ruby \u00e0 l'aide de l'API de Mailgun | Mailgun","og_description":"Userfox n'est pas une entreprise d'infrastructure, c'est une entreprise d'email marketing. Ils comptent donc sur Mailgun pour faire des choses qu'ils devraient autrement construire, ce qui prend trop de temps. En savoir plus","og_url":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","article_modified_time":"2026-09-03T15:05:45+00:00","og_image":[{"width":592,"height":368,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/01\/Mailgun-Case-Study-AdRoll.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/","url":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/","name":"Comment userfox envoie & suit les emails dans son application Ruby \u00e0 l'aide de l'API de Mailgun | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/01\/Mailgun-Case-Study-AdRoll.png","datePublished":"2025-01-28T04:12:02+00:00","dateModified":"2026-09-03T15:05:45+00:00","description":"Userfox n'est pas une entreprise d'infrastructure, c'est une entreprise d'email marketing. Ils comptent donc sur Mailgun pour faire des choses qu'ils devraient autrement construire, ce qui prend trop de temps. En savoir plus","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/01\/Mailgun-Case-Study-AdRoll.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/01\/Mailgun-Case-Study-AdRoll.png","width":592,"height":368},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/comment-userfox-envoie-suit-les-emails-dans-son-application-ruby\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Case Studies","item":"https:\/\/www.mailgun.com\/fr\/ressources\/etudes-de-cas\/"},{"@type":"ListItem","position":3,"name":"Comment AdRoll envoie & suit les emails dans son application Ruby \u00e0 l\u2019aide de l\u2019API de Mailgun"}]},{"@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\/case-studies\/18193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/case-studies"}],"about":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/types\/case-studies"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/users\/90"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media\/8236"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media?parent=18193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}