{"id":19965,"date":"2026-09-14T21:17:13","date_gmt":"2026-09-14T21:17:13","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/mission-sur-mars-pycon-2014\/"},"modified":"2026-09-14T21:17:13","modified_gmt":"2026-09-14T21:17:13","slug":"mission-sur-mars-pycon-2014","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/","title":{"rendered":"Mission sur Mars \u2013 PyCon 2014"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Nous nous sommes beaucoup amus\u00e9s \u00e0 la PyCon 2013 avec notre\u00a0<a href=\"\/?blog_category=hardware-fun-building-an-email-controlled-gun-for\" target=\"_tabs\" rel=\"noopener noreferrer\">pistolet Nerf g\u00e9ant command\u00e9 par email<\/a>. Ce fut un grand succ\u00e8s aupr\u00e8s du public et pour la PyCon 2014, nous voulions faire quelque chose d&rsquo;encore plus incroyable. Il \u00e9tait donc \u00e9vident que nous devions commencer par\u2026 un aspirateur. Ce blog vous montre comment nous sommes pass\u00e9s d&rsquo;un aspirateur \u00e0 un rover martien et comment nous avons pass\u00e9 un excellent moment cette ann\u00e9e encore \u00e0 la PyCon.<\/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-4294\"><p class=\"h5 m-0\" id=\"toc-title-4294\">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=\"#de-modestes-debuts-une-mission-sur-mars\">De modestes d\u00e9buts\u2026 une mission sur Mars<\/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=\"#comment-ca-marche\">Comment \u00e7a marche\u00a0?<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#nous-allons-avoir-besoin-de-plus-de-lego\">Nous allons avoir besoin de plus de Lego<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#chere-tsa\">Ch\u00e8re TSA,<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">05<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#nouveau-et-ameliore-mais-pas-par-choix\">Nouveau et am\u00e9lior\u00e9\u2026 mais pas par choix<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\"><strong>De modestes d\u00e9buts\u2026 une mission sur Mars<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Anton, notre ing\u00e9nieur \u00e9lectricien devenu d\u00e9veloppeur de logiciels, s&rsquo;\u00e9tait achet\u00e9 un\u00a0<a href=\"http:\/\/www.neatorobotics.com\/products\/\">aspirateur robot Neato\u00a0<\/a>apr\u00e8s des recherches approfondies, comparant Neato au tr\u00e8s populaire iRobot Roomba. Le facteur d\u00e9cisif\u00a0? Les aspirateurs Neato disposent d&rsquo;une API qui vous permet de les contr\u00f4ler via du code. Exactement ce dont nous avions besoin pour notre mission sur Mars.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;une des nombreuses choses que nous appr\u00e9cions en travaillant chez Rackspace, l&rsquo;entreprise qui a rachet\u00e9 Mailgun en 2012, est le hackday mensuel o\u00f9 tous les ing\u00e9nieurs du bureau se r\u00e9unissent pour travailler sur tout ce qu&rsquo;ils trouvent int\u00e9ressant, que cela soit li\u00e9 ou non \u00e0 un projet officiel de Rackspace. Nous avons fait appel \u00e0 quelques coll\u00e8gues de Rackspace et avons pass\u00e9 la journ\u00e9e \u00e0 travailler sur le code que nous allions utiliser pour contr\u00f4ler le robot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous savions que nous voulions donner au public la possibilit\u00e9 d&rsquo;envoyer des commandes par email au robot comme m\u00e9canisme de contr\u00f4le, et que le robot devait pouvoir avancer, reculer et tourner \u00e0 360 degr\u00e9s. Nous voulions \u00e9galement pouvoir \u00ab\u00a0pr\u00e9lever des \u00e9chantillons\u00a0\u00bb de la surface martienne, c&rsquo;est-\u00e0-dire allumer l&rsquo;aspirateur, et prendre une photo \u00e0 l&rsquo;aide de la cam\u00e9ra mont\u00e9e sur ce qui allait devenir la tour d&rsquo;instruments principale du rover.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Comment \u00e7a marche\u00a0?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La plupart des d\u00e9tails de notre jeu pour la PyCon de cette ann\u00e9e \u00e9taient diff\u00e9rents, mais nous avions retenu une le\u00e7on de l&rsquo;ann\u00e9e pr\u00e9c\u00e9dente\u00a0:<br>L&rsquo;acc\u00e8s au r\u00e9seau peut s&rsquo;av\u00e9rer compliqu\u00e9 sur le lieu de la conf\u00e9rence. L&rsquo;adresse IP du Raspberry Pi ne serait peut-\u00eatre pas accessible publiquement, rendant impossible l&rsquo;envoi d&rsquo;une requ\u00eate HTTP POST.<br>&#8211;\u00a0<a href=\"https:\/\/68838d2e8987eb65e005d837--mailgun.netlify.app\/blog\/hardware-fun-building-an-email-controlled-gun-for\">Mailgun \u00e0 la PyCon 2013<\/a><br>Pour r\u00e9soudre ce probl\u00e8me, nous avons utilis\u00e9 Redis afin de nous assurer que le rover pouvait r\u00e9cup\u00e9rer les commandes depuis le serveur tant que le Raspberry Pi disposait d&rsquo;une connexion Internet. Voici \u00e0 quoi cela ressemble sur le plan conceptuel\u00a0:<br><code>+ - - - - - + +-----------+ +------------+ +--------------+ | | | | | | | | SMTP | | HTTP | | | Email client +-----&gt; | Mailgun +-----&gt; | Web server | | | | | route | | | +--------------+ | | | | | | | | +-----+------+ +-----------+ | | | Redis lpush | (local) | | | v | +--------------+ +------------+ | | Redis brpop | | | | | Raspberry Pi |  | Raspery Pi Camera | | GPIO +-------------------+ +-------------------&gt; | Brick Pi | | serial port +-------------------+ +-------------------&gt; | Neato Vac | +-------------------+<\/code><br>Une fois ce probl\u00e8me r\u00e9solu, nous avons travaill\u00e9 sur les commandes principales.<br>Voici des exemples du code que nous avons utilis\u00e9 pour contr\u00f4ler le robot\u00a0:<br><em>Contr\u00f4ler la tour de la cam\u00e9ra avec BrickPi\u00a0:<\/em><\/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                                    def init(host, password): &quot;&quot;&quot;Init the required components.&quot;&quot;&quot; print &quot;Init BrickPi&quot; BrickPiSetup() BrickPi.MotorEnable[PORT_D] = 1 def camera_control(command, mission_control_address): print &quot;Camera control module received:&quot;, command if command in (&quot;up&quot;, &quot;down&quot;): if command &quot;up&quot;: BrickPi.MotorSpeed[PORT_D] = -100 elif command &quot;down&quot;: # despite the fact that the surface gravity of Mars is only # about 38% of Earth&#039;s there is still less force required to # bring the camera down BrickPi.MotorSpeed[PORT_D] = 50 BrickPiUpdateValues() sleep(0.5) # stop the motor BrickPi.MotorSpeed[PORT_D] = 0 BrickPiUpdateValues() elif command == &quot;take_picture&quot;: camera.capture(file_name) send_picture(file_name, mission_control_address) def send_picture(file_name, mission_control_address) &quot;&quot;&quot;Send picture back to the Mission Control Center.&quot;&quot;&quot; r = requests.post( &quot;https:\/\/api.mailgun.net\/v2\/mailgun.net\/messages&quot;, auth=(&quot;api&quot;, &quot;***&quot;), files=[(&quot;attachment&quot;, open(file_name))], data={&quot;from&quot;: &quot;Mars Rover &quot;, &quot;to&quot;: mission_control_address, &quot;cc&quot;: &quot;nsa@mailgun.net&quot;, # oops &quot;subject&quot;: &quot;A message from Mars&quot;, &quot;text&quot;: &quot;The picture of the surface is attached!&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\"><em>Contr\u00f4ler l&rsquo;aspirateur\u00a0:<\/em><\/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                                    def init(host, password): print &quot;Init Vacuum Base!!!&quot; vac_port = serial.Serial(&quot;\/dev\/ttyACM1&quot;) def vac_run_command(command, read_response=True): print &quot;Vacuum base control module received:&quot;, command try: vac_port.write(command) if not read_response: # provided command doesn&#039;t have a response return return read_response() except: # fault tolerance for the WIN! reconnect()\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\"><em>Accepter les requ\u00eates POST depuis Mailgun\u00a0:<\/em><\/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(&#039;\/mission_control&#039;, methods=[&#039;POST&#039;]) def mission_control(): &quot;&quot;&quot;Commands from Mailgun arrive here.&quot;&quot;&quot; command_message = request.form[&#039;stripped-text&#039;] from_ = request.form[&#039;From&#039;] for command in parse(command_message): robot.run(command, from_) return &quot;10-4&quot;\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\"><strong>Nous allons avoir besoin de plus de Lego<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Une fois la partie logicielle termin\u00e9e, nous avons commenc\u00e9 \u00e0 transformer notre aspirateur en rover martien.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous avons commenc\u00e9 par chercher le meilleur endroit pour acheter des Lego de couleur unie en vrac. Nous avions besoin de beaucoup de Lego noirs, gris et blancs pour cr\u00e9er un rover authentique. Il s&rsquo;av\u00e8re qu&rsquo;\u00a0<a href=\"http:\/\/www.ebay.com\/sch\/i.html?_trksid=p2053587.m570.l1313.TR0.TRC0.H0.Xbulk+white+legos&amp;_nkw=bulk+white+legos&amp;_sacat=0&amp;_from=R40\">eBay est le meilleur endroit pour se procurer des Lego<\/a>, souvent au kilo. 118\u00a0$ plus tard, nous \u00e9tions pr\u00eats \u00e0 commencer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"367\" height=\"489\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-1.png\" alt=\"Deux hommes et un enfant travaillent ensemble \u00e0 une longue table couverte de piles de blocs de construction tri\u00e9s\" class=\"wp-image-11528\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-1.png 367w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-1-225x300.png 225w\" sizes=\"(max-width: 367px) 100vw, 367px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nous avons r\u00e9uni une \u00e9quipe d&rsquo;ing\u00e9nieurs hors pair pour cette mission, dont le fils de quatre ans de l&rsquo;un des membres de l&rsquo;\u00e9quipe Mailgun, et avons dispos\u00e9 tous les Lego qui formeraient la carrosserie du rover. Voici Anton, Ralph et Luca en pleine pr\u00e9paration. Apr\u00e8s avoir prototyp\u00e9 quelques-uns des principaux composants, nous avons finalis\u00e9 notre conception. Le rover serait \u00e9quip\u00e9 d&rsquo;une cam\u00e9ra oscillante (aliment\u00e9e par un moteur Lego Mindstorms) mont\u00e9e au sommet d&rsquo;une tour de contr\u00f4le int\u00e9grant un \u00a0<a href=\"http:\/\/www.raspberrypi.org\/\">Raspberry Pi<\/a>,\u00a0<a href=\"http:\/\/www.dexterindustries.com\/BrickPi\/\">BrickPi<\/a>\u00a0et une batterie de secours. Une grande partie de la carrosserie du rover serait \u00e9galement recouverte d&rsquo;un panneau solaire USB fonctionnel.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"490\" height=\"368\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-2.png\" alt=\"Diagramme sur tableau blanc montrant des vues a\u00e9riennes et arri\u00e8re d&apos;un robot avec des libell\u00e9s pour le panneau solaire, la cam\u00e9ra et le Raspberry Pi\" class=\"wp-image-11532\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-2.png 490w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-2-300x225.png 300w\" sizes=\"(max-width: 490px) 100vw, 490px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Quelques erreurs, quelques rires et quelques heures plus tard, nous \u00e9tions en bonne voie pour pr\u00e9senter un robot assembl\u00e9 lors de la pr\u00e9sentation du hackday qui, par co\u00efncidence, \u00e9tait programm\u00e9e plus tard dans la journ\u00e9e au bureau de Rackspace.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"367\" height=\"489\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-3.png\" alt=\"Un homme travaille sur une construction LEGO complexe construite au-dessus d&apos;une base d&apos;aspirateur robot\" class=\"wp-image-11536\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-3.png 367w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-3-225x300.png 225w\" sizes=\"(max-width: 367px) 100vw, 367px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Et voici un gros plan de la tour de contr\u00f4le principale. L&rsquo;\u00e9l\u00e9ment avec l&rsquo;autocollant Mailgun est la batterie de secours. Le Raspberry Pi et le BrickPi sont mont\u00e9s par-dessus, et vous pouvez voir le moteur Lego en haut de la photo. La cam\u00e9ra du Raspberry Pi est juste hors du champ.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"367\" height=\"489\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-4.png\" alt=\"Un robot construit \u00e0 partir de briques LEGO et de composants \u00e9lectroniques, arborant un logo Mailgun sur sa base\" class=\"wp-image-11540\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-4.png 367w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-4-225x300.png 225w\" sizes=\"(max-width: 367px) 100vw, 367px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Voici une vue arri\u00e8re du rover. Une grande partie des \u00e9l\u00e9ments d\u00e9coratifs chrom\u00e9s a \u00e9t\u00e9 ajout\u00e9e par le plus jeune membre de la mission, y compris les deux personnages Lego. L&rsquo;un d&rsquo;eux est un marin, et l&rsquo;autre est un pirate. Il s&rsquo;est av\u00e9r\u00e9 que ce n&rsquo;\u00e9tait qu&rsquo;une partie de la mission qui allait n\u00e9cessiter beaucoup de cr\u00e9ativit\u00e9, comme vous le verrez plus tard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"490\" height=\"368\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-5.png\" alt=\"Deux minifigurines LEGO se tiennent sur le pont d&apos;un mod\u00e8le de bateau LEGO construit sur mesure\" class=\"wp-image-11544\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-5.png 490w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-5-300x225.png 300w\" sizes=\"(max-width: 490px) 100vw, 490px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nous avons termin\u00e9 une longue journ\u00e9e par une d\u00e9monstration du rover \u00e0 notre bureau. Voici Anton en train d&rsquo;examiner le rover termin\u00e9.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"490\" height=\"368\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-6.png\" alt=\"Un homme s&apos;accroupit et pointe du doigt un petit robot pendant qu&apos;un groupe de personnes regarde\" class=\"wp-image-11548\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-6.png 490w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-6-300x225.png 300w\" sizes=\"(max-width: 490px) 100vw, 490px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ch\u00e8re TSA,<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nous savions que nous ne pouvions pas prendre le rover avec nous dans l&rsquo;avion pour Montr\u00e9al. Il ressemble \u00e0 une bombe, nous l&rsquo;admettons, et nous ne voulions pas avoir une longue et agr\u00e9able conversation avec une \u00e9quipe d&rsquo;agents de la TSA. Nous avons donc soigneusement emball\u00e9 le rover dans une grande valise, en le prot\u00e9geant avec une trentaine de t-shirts American Apparel 50-50 bien doux, que nous allions distribuer aux participants de la conf\u00e9rence qui essaieraient le rover. Nous avons \u00e9galement joint un mot \u00e0 l&rsquo;attention de la TSA pour l&rsquo;informer qu&rsquo;il s&rsquo;agissait d&rsquo;un robot fabriqu\u00e9 avec un Raspberry Pi. Nous \u00e9tions s\u00fbrs qu&rsquo;ils ouvriraient le sac et jetteraient un coup d&rsquo;\u0153il, mais nous n&rsquo;avions pas pr\u00e9vu \u00e0 quel point ils l&rsquo;inspecteraient de pr\u00e8s.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Nouveau et am\u00e9lior\u00e9\u2026 mais pas par choix<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lorsque nous sommes arriv\u00e9s \u00e0 notre h\u00f4tel \u00e0 Montr\u00e9al et que nous avons ouvert la valise, notre premi\u00e8re pens\u00e9e a \u00e9t\u00e9\u00a0: mince, ils ont vraiment d\u00fb jeter le sac dans tous les sens, car de nombreuses pi\u00e8ces se sont compl\u00e8tement d\u00e9tach\u00e9es. Cependant, en y regardant de plus pr\u00e8s, il est devenu \u00e9vident que la TSA avait d\u00e9mont\u00e9 le rover, presque Lego par Lego. Certains composants \u00e9taient encore intacts, mais les structures les plus complexes, comme le ch\u00e2ssis et la tour de contr\u00f4le, avaient \u00e9t\u00e9 m\u00e9ticuleusement d\u00e9mont\u00e9es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un caf\u00e9 \u00e0 la main et deux heures avant l&rsquo;ouverture de la conf\u00e9rence, nous avons \u00e0 nouveau \u00e9tal\u00e9 les Lego sur une table et commenc\u00e9 le r\u00e9assemblage. Le probl\u00e8me auquel nous \u00e9tions confront\u00e9s \u00e9tait que nous n&rsquo;avions pas apport\u00e9 de Lego suppl\u00e9mentaires. Comme nous avions improvis\u00e9 la conception initiale, nous n&rsquo;avions aucun plan \u00e0 suivre, et chaque Lego devait donc \u00eatre replac\u00e9 exactement comme il l&rsquo;\u00e9tait auparavant si nous voulions conserver le design d&rsquo;origine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inutile de dire que nous avons opt\u00e9 pour une conception l\u00e9g\u00e8rement diff\u00e9rente, qui a fini par n\u00e9cessiter environ 30\u00a0% de Lego en moins pour cr\u00e9er un design tout aussi fonctionnel.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"490\" height=\"368\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-7.png\" alt=\"Un ordinateur portable, un smartphone, un panneau solaire et divers composants \u00e9lectroniques et plastiques sur une table blanche\" class=\"wp-image-11552\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-7.png 490w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-7-300x225.png 300w\" sizes=\"(max-width: 490px) 100vw, 490px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Bien que frustrante au d\u00e9but, la reconstruction du rover s&rsquo;est av\u00e9r\u00e9e tr\u00e8s amusante. Nous avons fini par discuter avec de nombreux passionn\u00e9s de Lego au cours de la matin\u00e9e, et certains sont m\u00eame venus nous donner un coup de main. \u00c0 la mi-journ\u00e9e, notre rover martien \u00e9tait pleinement op\u00e9rationnel et s&rsquo;est r\u00e9v\u00e9l\u00e9 \u00eatre un excellent moyen de rencontrer la communaut\u00e9 Python. Parmi nos hackers pr\u00e9f\u00e9r\u00e9s que nous avons rencontr\u00e9s figuraient les plus jeunes qui venaient \u00e0 la PyCon pour la premi\u00e8re fois. Voici une photo prise par la cam\u00e9ra du rover apr\u00e8s que notre jeune ami a contr\u00f4l\u00e9 le robot en envoyant des commandes par email depuis le t\u00e9l\u00e9phone de son p\u00e8re. On peut dire que la mission a \u00e9t\u00e9 un succ\u00e8s\u00a0!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"540\" height=\"360\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-8.png\" alt=\"Un homme et un jeune gar\u00e7on portant des tours de cou sourient pour une photo dans une grande salle int\u00e9rieure\" class=\"wp-image-11556\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-8.png 540w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2019\/07\/image-8-300x200.png 300w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Voil\u00e0 donc l&rsquo;histoire de notre rover martien. Quoi qu&rsquo;il arrive, nous nous amusons toujours beaucoup \u00e0 la PyCon. Nous avons h\u00e2te d&rsquo;\u00eatre \u00e0 l&rsquo;ann\u00e9e prochaine pour recommencer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 tr\u00e8s vite\u00a0! Bons envois.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;\u00e9quipe Mailgun.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous nous sommes beaucoup amus\u00e9s \u00e0 la PyCon 2013 avec notre pistolet Nerf g\u00e9ant command\u00e9 par email. Ce fut un grand succ\u00e8s aupr\u00e8s du public et pour la PyCon 2014, nous voulions faire quelque chose d&rsquo;encore plus incroyable. Il \u00e9tait donc \u00e9vident que nous devions commencer par\u2026 un aspirateur. Ce blog vous montre comment nous sommes pass\u00e9s d&rsquo;un aspirateur \u00e0 un rover martien et comment nous avons pass\u00e9 un excellent moment cette ann\u00e9e encore \u00e0 la PyCon.<\/p>\n","protected":false},"author":13,"featured_media":3952,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[19],"class_list":["post-19965","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-dev-life"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mission sur Mars - PyCon 2014 - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"Nous nous sommes beaucoup amus\u00e9s \u00e0 la PyCon 2013 avec notre pistolet Nerf g\u00e9ant command\u00e9 par email. Ce fut un grand succ\u00e8s aupr\u00e8s du public et pour la PyCon 2014, nous voulions faire quelque chose d&#039;encore plus incroyable.\" \/>\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\/dev-life\/mission-sur-mars-pycon-2014\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mission sur Mars - PyCon 2014 - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Nous nous sommes beaucoup amus\u00e9s \u00e0 la PyCon 2013 avec notre pistolet Nerf g\u00e9ant command\u00e9 par email. Ce fut un grand succ\u00e8s aupr\u00e8s du public et pour la PyCon 2014, nous voulions faire quelque chose d&#039;encore plus incroyable.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/\" \/>\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-Dev-Life.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=\"8 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\\\/dev-life\\\/mission-sur-mars-pycon-2014\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/dev-life\\\/mission-sur-mars-pycon-2014\\\/\",\"name\":\"Mission sur Mars - PyCon 2014 - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/dev-life\\\/mission-sur-mars-pycon-2014\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/dev-life\\\/mission-sur-mars-pycon-2014\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"datePublished\":\"2026-09-14T21:17:13+00:00\",\"description\":\"Nous nous sommes beaucoup amus\u00e9s \u00e0 la PyCon 2013 avec notre pistolet Nerf g\u00e9ant command\u00e9 par email. Ce fut un grand succ\u00e8s aupr\u00e8s du public et pour la PyCon 2014, nous voulions faire quelque chose d'encore plus incroyable.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/dev-life\\\/mission-sur-mars-pycon-2014\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/dev-life\\\/mission-sur-mars-pycon-2014\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/dev-life\\\/mission-sur-mars-pycon-2014\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Dev-Life.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/dev-life\\\/mission-sur-mars-pycon-2014\\\/#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\":\"Mission sur Mars \u2013 PyCon 2014\"}]},{\"@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":"Mission sur Mars - PyCon 2014 - Transactional Email API Service For Developers | Mailgun","description":"Nous nous sommes beaucoup amus\u00e9s \u00e0 la PyCon 2013 avec notre pistolet Nerf g\u00e9ant command\u00e9 par email. Ce fut un grand succ\u00e8s aupr\u00e8s du public et pour la PyCon 2014, nous voulions faire quelque chose d'encore plus incroyable.","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\/dev-life\/mission-sur-mars-pycon-2014\/","og_locale":"fr_FR","og_type":"article","og_title":"Mission sur Mars - PyCon 2014 - Transactional Email API Service For Developers | Mailgun","og_description":"Nous nous sommes beaucoup amus\u00e9s \u00e0 la PyCon 2013 avec notre pistolet Nerf g\u00e9ant command\u00e9 par email. Ce fut un grand succ\u00e8s aupr\u00e8s du public et pour la PyCon 2014, nous voulions faire quelque chose d'encore plus incroyable.","og_url":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/","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-Dev-Life.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/","url":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/","name":"Mission sur Mars - PyCon 2014 - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","datePublished":"2026-09-14T21:17:13+00:00","description":"Nous nous sommes beaucoup amus\u00e9s \u00e0 la PyCon 2013 avec notre pistolet Nerf g\u00e9ant command\u00e9 par email. Ce fut un grand succ\u00e8s aupr\u00e8s du public et pour la PyCon 2014, nous voulions faire quelque chose d'encore plus incroyable.","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Dev-Life.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/fr\/blog\/dev-life\/mission-sur-mars-pycon-2014\/#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":"Mission sur Mars \u2013 PyCon 2014"}]},{"@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\/19965","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":1,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog\/19965\/revisions"}],"predecessor-version":[{"id":19966,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog\/19965\/revisions\/19966"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media\/3952"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media?parent=19965"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog_category?post=19965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}