{"id":24829,"date":"2026-09-16T17:52:05","date_gmt":"2026-09-16T17:52:05","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/o-que-aprendemos-abrir-codigo-grande-parte\/"},"modified":"2026-09-16T17:52:06","modified_gmt":"2026-09-16T17:52:06","slug":"o-que-aprendemos-abrir-codigo-grande-parte","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/","title":{"rendered":"O que aprendemos ao abrir o c\u00f3digo de grande parte do Mailgun"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">H\u00e1 algumas semanas, abrimos o c\u00f3digo do\u00a0<a href=\"https:\/\/github.com\/mailgun\/flanker\" target=\"_tabs\" rel=\"noopener noreferrer\">Flanker, nossa biblioteca de an\u00e1lise de MIME e valida\u00e7\u00e3o de e-mail<\/a>. Ficamos muito felizes com o lan\u00e7amento e com o n\u00edvel de interesse demonstrado pela comunidade Python. Este tweet \u00e9 um exemplo t\u00edpico do que temos ouvido desde o lan\u00e7amento:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Transformar um software em c\u00f3digo aberto pode parecer f\u00e1cil, mas \u00e9 mais complexo do que simplesmente colocar o seu software no GitHub e dar o trabalho por encerrado. Na verdade, nos surpreendemos com alguns dos desafios que enfrentamos e quer\u00edamos compartilhar nossas experi\u00eancias sobre o processo na esperan\u00e7a de ajudar outras equipes de desenvolvimento com o plano de abrir seu pr\u00f3prio c\u00f3digo. Para isso, veja como fizemos e o que aprendemos.<\/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-1556\"><p class=\"h5 m-0\" id=\"toc-title-1556\">\u00cdndice<\/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=\"#anchor_1-abrindo-o-codigo-de-mais-coisas-do-que-pretendiamos-originalmente\">1. Abrindo o c\u00f3digo de mais coisas do que pretend\u00edamos originalmente<\/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=\"#anchor_2-tornando-o-flanker-mais-modular\">2. Tornando o Flanker mais modular<\/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=\"#anchor_3-integrando-o-codigo-aberto-de-volta-ao-mailgun\">3. Integrando o c\u00f3digo aberto de volta ao Mailgun<\/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=\"#anchor_4-consideracoes-juridicas\">4. Considera\u00e7\u00f5es jur\u00eddicas<\/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=\"#anchor_5-testes-beta-antes-de-abrir-o-codigo\">5. &#8220;Testes beta&#8221; antes de abrir o c\u00f3digo<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">06<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#anchor_6-documentacao\">6. Documenta\u00e7\u00e3o<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\">1. Abrindo o c\u00f3digo de mais coisas do que pretend\u00edamos originalmente<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Originalmente, nos comprometemos a abrir o c\u00f3digo do Guardpost, nosso validador de endere\u00e7o de e-mail. Quando come\u00e7amos esse processo, percebemos rapidamente que isso seria muito mais valioso se fosse empacotado com a nossa biblioteca de an\u00e1lise de MIME e lan\u00e7ado em conjunto como Flanker. Isso levou a complica\u00e7\u00f5es adicionais, pois agora est\u00e1vamos abrindo o c\u00f3digo de uma parte bastante grande da base de c\u00f3digo principal do Mailgun.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Tornando o Flanker mais modular<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como o Flanker n\u00e3o foi projetado originalmente para ser usado por outras pessoas, foi um desafio garantir a remo\u00e7\u00e3o de todas as depend\u00eancias da base de c\u00f3digo propriet\u00e1ria. N\u00e3o quer\u00edamos impor nosso uso de tecnologias espec\u00edficas a outras pessoas, ent\u00e3o pegamos as partes do Flanker que usavam m\u00f3dulos espec\u00edficos do Python ou bancos de dados como Redis e dnspython e as tornamos mais modulares. Agora voc\u00ea pode usar qualquer banco de dados (ou nenhum) para armazenar seus resultados em cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso significava que t\u00ednhamos que primeiro extrair o c\u00f3digo e nos certificar de que seria consum\u00edvel por terceiros para, em seguida, integrar efetivamente o Flanker de volta ao Mailgun em sua nova forma. Tamb\u00e9m aproveitamos esta oportunidade para refatorar grandes partes do analisador de endere\u00e7os (veja o item 5 abaixo), o que tornou as coisas mais dif\u00edceis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Poder\u00edamos simplesmente ter feito um fork da nossa base de c\u00f3digo interna do Flanker, nos esfor\u00e7ado para remover as depend\u00eancias e voltado a usar o que j\u00e1 estava funcionando internamente. No entanto, dessa forma, estar\u00edamos negligenciando o c\u00f3digo aberto ou mantendo duas bases de c\u00f3digo diferentes. Em vez disso, decidimos nos comprometer a continuar usando o c\u00f3digo aberto em produ\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso significa que, ao fazer o merge de um pull request (j\u00e1 fizemos oito desde que abrimos o c\u00f3digo do Flanker h\u00e1 algumas semanas, e temos mais quatro pendentes), n\u00e3o s\u00f3 temos que garantir que o c\u00f3digo seja limpo, de f\u00e1cil manuten\u00e7\u00e3o e voltado ao desempenho, como tamb\u00e9m precisamos nos certificar de que todas as altera\u00e7\u00f5es funcionem bem com o restante do Mailgun.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Integrando o c\u00f3digo aberto de volta ao Mailgun<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como voc\u00ea pode imaginar, a an\u00e1lise de endere\u00e7os e a an\u00e1lise de MIME s\u00e3o essenciais no Mailgun. Como fizemos grandes modifica\u00e7\u00f5es no processo de abertura do c\u00f3digo, tivemos que tomar muito cuidado ao integrar o c\u00f3digo aberto de volta ao Mailgun sem prejudicar os aplicativos da clientela. Talvez n\u00e3o seja t\u00e3o impressionante, mas pareceu um pouco como\u00a0<a href=\"https:\/\/www.youtube.com\/watch?v=M7FIvfx5J10\" target=\"_tabs\" rel=\"noopener noreferrer\">fazer espacate entre dois caminh\u00f5es andando de r\u00e9<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conseguimos isso implementando o Flanker em fases. Primeiro, come\u00e7amos liberando o Flanker para uma pequena parte do nosso tr\u00e1fego. Isso nos permitiu come\u00e7ar a ver situa\u00e7\u00f5es nas quais o comportamento do novo analisador de endere\u00e7os era mais rigoroso do que antes. Para certas coisas, como permitir caracteres de controle em nomes de exibi\u00e7\u00e3o, decidimos proibir isso, pois \u00e9 um risco de seguran\u00e7a. Para outras coisas, como o suporte a Unicode, decidimos ser o mais flex\u00edveis poss\u00edvel quanto ao que aceitar\u00edamos. Sim, isso significa que agora voc\u00ea pode enviar\u00a0<a href=\"http:\/\/www.jwz.org\/blog\/2012\/02\/unicode-character-pile-of-poo-\u1f4a9\/\" target=\"_tabs\" rel=\"noopener noreferrer\">o caractere de coc\u00f4<\/a>\u00a0como nome de exibi\u00e7\u00e3o por meio do Mailgun, e n\u00f3s o codificaremos corretamente e o repassaremos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Considera\u00e7\u00f5es jur\u00eddicas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m achamos que seria sensato ver se poder\u00edamos abrir o c\u00f3digo sem perder o emprego. O Flanker \u00e9 uma das pe\u00e7as centrais do Mailgun, ent\u00e3o \u00e9 bastante valioso para a Rackspace. Embora acreditemos que, \u00e0s vezes, \u00e9 uma boa estrat\u00e9gia pedir perd\u00e3o em vez de permiss\u00e3o para fazer as coisas acontecerem, esta provavelmente n\u00e3o era uma daquelas ocasi\u00f5es. Ent\u00e3o, consultamos as equipes jur\u00eddicas e de produtos da Rackspace para garantir que estavam de acordo. Felizmente, o slogan da Rackspace \u00e9 a &#8220;empresa de nuvem aberta&#8221; e ela se dedica ao software de c\u00f3digo aberto, ent\u00e3o n\u00e3o foi dif\u00edcil convencer o pessoal de que abrir o c\u00f3digo do Flanker era a coisa certa a se fazer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. &#8220;Testes beta&#8221; antes de abrir o c\u00f3digo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Operamos nosso analisador de MIME em produ\u00e7\u00e3o h\u00e1 muito tempo, mas a parte do validador de e-mail (Guardpost) era relativamente nova. Lan\u00e7amos o Guardpost como uma API antes de abrir o c\u00f3digo do Flanker. Isso nos permitiu testar efetivamente em condi\u00e7\u00f5es reais antes de abrir o c\u00f3digo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 medida que o Guardpost se tornou popular, mesmo rodando em uma m\u00e1quina dedicada bastante poderosa, ele estava tendo problemas para lidar com o tr\u00e1fego que recebia. Ent\u00e3o passamos um tempo analisando o perfil do Guardpost procurando o que estava causando a lentid\u00e3o, e descobrimos que era o corretor ortogr\u00e1fico. Passamos um tempo pesquisando como poder\u00edamos melhor\u00e1-lo e acabamos reescrevendo tudo. Voc\u00ea pode ver nosso post no blog sobre\u00a0<a href=\"\/?blog_category=weekly-product-update-control-panel-improvements-and-135x-faster-spell-checker-for-email-validation\" target=\"_tabs\" rel=\"noopener noreferrer\">como conseguimos deixar o corretor ortogr\u00e1fico 135 vezes mais r\u00e1pido<\/a>\u00a0do que antes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m conseguimos consertar uma boa quantidade de bugs encontrados pelas pessoas. Isso incluiu desde adicionar o suporte do Internet Explorer para nossa demonstra\u00e7\u00e3o de validador (ningu\u00e9m na equipe tinha uma m\u00e1quina com Windows, ent\u00e3o tivemos que adquirir uma licen\u00e7a para corrigir esse bug!) at\u00e9 enviar e-mail diretamente a um dom\u00ednio de n\u00edvel superior (TLD).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rodar o c\u00f3digo em produ\u00e7\u00e3o antes de abri-lo nos deu confian\u00e7a e orgulho do que est\u00e1vamos disponibilizando para o mundo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Documenta\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Isso \u00e9 muito importante. Quando voc\u00ea tem uma base de c\u00f3digo interna na qual est\u00e1 trabalhando, pode ir at\u00e9 quem a desenvolveu e fazer uma pergunta r\u00e1pida. Esse n\u00e3o \u00e9 o caso do software de c\u00f3digo aberto. Por isso, quer\u00edamos garantir que o Flanker fosse bem documentado para que ficasse mais f\u00e1cil de usar para novas pessoas. Isso significa que o Flanker est\u00e1 bem documentado no pr\u00f3prio c\u00f3digo com coment\u00e1rios, al\u00e9m da documenta\u00e7\u00e3o externa como uma\u00a0<a href=\"https:\/\/github.com\/mailgun\/flanker#quickstart-guide\" target=\"_tabs\" rel=\"noopener noreferrer\">Guia de in\u00edcio r\u00e1pido<\/a>,\u00a0<a href=\"https:\/\/github.com\/mailgun\/flanker\/blob\/master\/docs\/User%20Manual.md\" target=\"_tabs\" rel=\"noopener noreferrer\">Manual do usu\u00e1rio<\/a>, e\u00a0<a href=\"https:\/\/github.com\/mailgun\/flanker\/blob\/master\/docs\/API%20Reference.md\" target=\"_tabs\" rel=\"noopener noreferrer\">refer\u00eancia da API<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ent\u00e3o, foi isso que aprendemos ao abrir o c\u00f3digo do Flanker. Embora tenha dado muito trabalho, foi um processo libertador e esperamos colher os frutos no futuro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adorar\u00edamos saber sobre as suas experi\u00eancias nos coment\u00e1rios deste post ou no\u00a0<a href=\"https:\/\/news.ycombinator.com\/item?id=6862748\" target=\"_tabs\" rel=\"noopener noreferrer\">HackerNews<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os Mailgunners<\/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_f014a0e390cc077b83c4478f7d869cf6\">\r\n                    <p class=\"text-uppercase section-caption text-body-color\">\r\n                Cadastre-se            <\/p>\r\n                            <p class=\"h4 text-accent fw-bold\" id=\"banner-block-block_f014a0e390cc077b83c4478f7d869cf6\">\r\n                \u00c9 f\u00e1cil come\u00e7ar. E \u00e9 gr\u00e1tis.            <\/p>\r\n                            <div class=\"mb-0 text-body-color\">\r\n                                    <div class=\"content-body mb-0 text-body-color\">Veja o que voc\u00ea pode alcan\u00e7ar com a melhor plataforma de entrega de e-mail do mundo.<\/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>H\u00e1 algumas semanas, abrimos o c\u00f3digo do Flanker, nossa biblioteca de an\u00e1lise de MIME e valida\u00e7\u00e3o de e-mail. Ficamos muito felizes com o lan\u00e7amento e com o n\u00edvel de interesse demonstrado pela comunidade Python. Este tweet \u00e9 um exemplo t\u00edpico do que temos ouvido desde o lan\u00e7amento:<\/p>\n","protected":false},"author":13,"featured_media":4843,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[23],"class_list":["post-24829","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-it-and-engineering"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>O que aprendemos sobre o Mailgun ao abrir o c\u00f3digo - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"Quando o Mailgun abriu o c\u00f3digo do Flanker, aprendemos muito sobre como \u00e9 pegar uma parte t\u00e3o grande da empresa e liber\u00e1-la para o p\u00fablico. Leia mais \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\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O que aprendemos sobre o Mailgun ao abrir o c\u00f3digo - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Quando o Mailgun abriu o c\u00f3digo do Flanker, aprendemos muito sobre como \u00e9 pegar uma parte t\u00e3o grande da empresa e liber\u00e1-la para o p\u00fablico. Leia mais \u2013\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-16T17:52:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.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 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/it-and-engineering\\\/o-que-aprendemos-abrir-codigo-grande-parte\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/it-and-engineering\\\/o-que-aprendemos-abrir-codigo-grande-parte\\\/\",\"name\":\"O que aprendemos sobre o Mailgun ao abrir o c\u00f3digo - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/it-and-engineering\\\/o-que-aprendemos-abrir-codigo-grande-parte\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/it-and-engineering\\\/o-que-aprendemos-abrir-codigo-grande-parte\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"datePublished\":\"2026-09-16T17:52:05+00:00\",\"dateModified\":\"2026-09-16T17:52:06+00:00\",\"description\":\"Quando o Mailgun abriu o c\u00f3digo do Flanker, aprendemos muito sobre como \u00e9 pegar uma parte t\u00e3o grande da empresa e liber\u00e1-la para o p\u00fablico. Leia mais \u2013\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/it-and-engineering\\\/o-que-aprendemos-abrir-codigo-grande-parte\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/it-and-engineering\\\/o-que-aprendemos-abrir-codigo-grande-parte\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/it-and-engineering\\\/o-que-aprendemos-abrir-codigo-grande-parte\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/it-and-engineering\\\/o-que-aprendemos-abrir-codigo-grande-parte\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/inicio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"O que aprendemos ao abrir o c\u00f3digo de grande parte do Mailgun\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Poderosas APIs de e-mail transacional que permitem a voc\u00ea enviar, receber e rastrear e-mails, criadas com os desenvolvedores em mente. Saiba mais hoje mesmo!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#\\\/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\\\/pt\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"O que aprendemos sobre o Mailgun ao abrir o c\u00f3digo - Transactional Email API Service For Developers | Mailgun","description":"Quando o Mailgun abriu o c\u00f3digo do Flanker, aprendemos muito sobre como \u00e9 pegar uma parte t\u00e3o grande da empresa e liber\u00e1-la para o p\u00fablico. Leia mais \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\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/","og_locale":"pt_BR","og_type":"article","og_title":"O que aprendemos sobre o Mailgun ao abrir o c\u00f3digo - Transactional Email API Service For Developers | Mailgun","og_description":"Quando o Mailgun abriu o c\u00f3digo do Flanker, aprendemos muito sobre como \u00e9 pegar uma parte t\u00e3o grande da empresa e liber\u00e1-la para o p\u00fablico. Leia mais \u2013","og_url":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","article_modified_time":"2026-09-16T17:52:06+00:00","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/","url":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/","name":"O que aprendemos sobre o Mailgun ao abrir o c\u00f3digo - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","datePublished":"2026-09-16T17:52:05+00:00","dateModified":"2026-09-16T17:52:06+00:00","description":"Quando o Mailgun abriu o c\u00f3digo do Flanker, aprendemos muito sobre como \u00e9 pegar uma parte t\u00e3o grande da empresa e liber\u00e1-la para o p\u00fablico. Leia mais \u2013","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/pt\/blog\/it-and-engineering\/o-que-aprendemos-abrir-codigo-grande-parte\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/pt\/inicio\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/pt\/blog\/"},{"@type":"ListItem","position":3,"name":"O que aprendemos ao abrir o c\u00f3digo de grande parte do Mailgun"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/pt\/#website","url":"https:\/\/www.mailgun.com\/pt\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Poderosas APIs de e-mail transacional que permitem a voc\u00ea enviar, receber e rastrear e-mails, criadas com os desenvolvedores em mente. Saiba mais hoje mesmo!","publisher":{"@id":"https:\/\/www.mailgun.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/pt\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.mailgun.com\/pt\/#\/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\/pt\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/24829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":1,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/24829\/revisions"}],"predecessor-version":[{"id":24830,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/24829\/revisions\/24830"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/media\/4843"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/media?parent=24829"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog_category?post=24829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}