{"id":24069,"date":"2026-09-16T10:55:30","date_gmt":"2026-09-16T10:55:30","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/"},"modified":"2026-09-16T10:55:30","modified_gmt":"2026-09-16T10:55:30","slug":"como-o-kanban2go-cumpre-a-lei-de-zawinski","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/","title":{"rendered":"Como o Kanban2go cumpre a Lei de Zawinski"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Esta publica\u00e7\u00e3o de blog de cliente foi escrita por Damon Cali. Damon \u00e9 propriet\u00e1rio da\u00a0Ninth Yard, criadora do TrackJumper, um aplicativo simples de rastreamento de bugs baseado na web. Ele tamb\u00e9m \u00e9 o principal desenvolvedor web do\u00a0<\/em><a href=\"https:\/\/kanban2go.com\/\"><em>kanban2go<\/em><\/a><em>.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"500\" height=\"85\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2go.png\" alt=\"kanban2go\" class=\"wp-image-4787\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2go.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2go-300x51.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Todo programa tenta se expandir at\u00e9 conseguir ler e-mail. Os programas que n\u00e3o conseguem se expandir dessa forma s\u00e3o substitu\u00eddos por aqueles que conseguem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lei de Zawinski<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o sei se isso \u00e9 verdade, mas\u00a0<a href=\"https:\/\/kanban2go.com\/\">kanban2go<\/a>\u00a0deu um passo nessa dire\u00e7\u00e3o recentemente com a adi\u00e7\u00e3o de um recurso baseado em e-mail. Uma coisa que fica \u00f3bvia logo de cara \u00e9 que criar um aplicativo web capaz de receber e-mails \u00e9 dif\u00edcil. H\u00e1 muitas partes m\u00f3veis, algumas das quais s\u00e3o grandes projetos por si s\u00f3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O usu\u00e1rio envia uma mensagem de e-mail, e voc\u00ea precisa receb\u00ea-la e process\u00e1-la de alguma forma. Como fazer isso? Voc\u00ea quer manter o seu pr\u00f3prio servidor de e-mail? Voc\u00ea precisa configurar caixas de correio para todos os seus usu\u00e1rios? E quanto a spam e entregabilidade? \u00c9 o suficiente para fazer profissionais de desenvolvimento se perguntarem se vale a pena.<\/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-7288\"><p class=\"h5 m-0\" id=\"toc-title-7288\">\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=\"#encontrar-uma-maneira-mais-facil-de-os-usuarios-criarem-tarefas\">Encontrar uma maneira mais f\u00e1cil de os usu\u00e1rios criarem tarefas<\/a><a class=\"scrollme link-body-color\" href=\"#passo-1-configurar-o-seu-dominio\">Passo 1- Configurar o seu dom\u00ednio<\/a><a class=\"scrollme link-body-color\" href=\"#passo-2-configurar-rotas-para-encaminhamento-de-e-mail\">Passo 2- Configurar rotas para encaminhamento de e-mail<\/a><a class=\"scrollme link-body-color\" href=\"#passo-3-receber-e-mails-com-rails\">Passo 3- Receber e-mails com Rails<\/a><a class=\"scrollme link-body-color\" href=\"#passo-4-relaxar\">Passo 4- Relaxar<\/a><\/div><\/div><\/nav>\n\n\n<h2 class=\"wp-block-heading\">Encontrar uma maneira mais f\u00e1cil de os usu\u00e1rios criarem tarefas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esses eram os meus pensamentos quando criamos a caixa de tarefas do kanban2go. Primeiro, um pouco de contexto. O kanban2go \u00e9 um aplicativo de gerenciamento de tarefas projetado em torno dos princ\u00edpios do\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/Kanban\">kanban<\/a>. Cada usu\u00e1rio tem um ou mais quadros kanban virtuais, nos quais h\u00e1 v\u00e1rias \u201ctarefas\u201d virtuais. Voc\u00ea faz login, clica em \u201cAdicionar tarefa\u201d e obt\u00e9m uma tarefa no quadro que pode editar, arrastar e com a qual pode interagir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quer\u00edamos melhorar as coisas fornecendo aos usu\u00e1rios uma maneira de enviar tarefas por e-mail para a sua conta, em vez de ter que fazer login no aplicativo. Foi quando minha cabe\u00e7a come\u00e7ou a girar, o que geralmente \u00e9 um bom indicador de que \u00e9 hora de ver se outra pessoa resolveu o problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bons artistas pegam emprestado. Grandes artistas roubam. Neste caso, artistas pragm\u00e1ticos alugam. Felizmente, o Mailgun facilita todo esse processo. Vou expor nesta publica\u00e7\u00e3o como abordamos o problema na esperan\u00e7a de que isso sirva de gatilho para algumas ideias no seu pr\u00f3prio aplicativo. O c\u00f3digo aqui n\u00e3o \u00e9 exatamente o que usamos (\u00e9 uma vers\u00e3o simplificada), mas as diferen\u00e7as t\u00eam mais a ver com o kanban2go do que com o Mailgun.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Passo 1- Configurar o seu dom\u00ednio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O primeiro passo (ap\u00f3s se cadastrar no Mailgun) \u00e9 criar e configurar o seu dom\u00ednio no Mailgun.<\/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_30b6293de8725aa9e94e0ecbb8992a00\">\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_30b6293de8725aa9e94e0ecbb8992a00\">\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\n\n\n<p class=\"wp-block-paragraph\"> Escolhemos usar taskbox.kanban2go.com. Dessa forma, um usu\u00e1rio pode enviar uma mensagem para user_abc123@taskbox.kanban2go.com (por exemplo) e fazer com que a mensagem apare\u00e7a na caixa de tarefas do usu\u00e1rio na forma de uma tarefa do kanban2go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A configura\u00e7\u00e3o de dom\u00ednio \u00e9 inteiramente uma quest\u00e3o de configurar os registros DNS do seu dom\u00ednio, conforme orienta\u00e7\u00e3o do Mailgun, e selecionar as op\u00e7\u00f5es desejadas no painel de controle. H\u00e1 instru\u00e7\u00f5es expl\u00edcitas no painel de controle do Mailgun para as configura\u00e7\u00f5es de DNS. Basta segui-las.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4788\" width=\"500\" height=\"309\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban.png\" alt=\"kanban\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban-300x185.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Para as op\u00e7\u00f5es, optamos por ativar o filtro de spam, bloqueando todo o spam recebido (voc\u00ea tamb\u00e9m poderia manter o spam, mas vamos manter a simplicidade). Como precis\u00e1vamos de apenas um subdom\u00ednio, optamos por um dom\u00ednio normal em vez de um dom\u00ednio curinga.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4789\" width=\"500\" height=\"249\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2.png\" alt=\"kanban2\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2.png 500w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/kanban2-300x149.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">E isso \u00e9 tudo para a configura\u00e7\u00e3o de dom\u00ednio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Passo 2- Configurar rotas para encaminhamento de e-mail<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Grande parte da simplicidade do Mailgun vem do seu sistema de roteamento. Voc\u00ea configura rotas que informam ao Mailgun o que fazer com as mensagens que ele recebe no dom\u00ednio configurado. No nosso caso, n\u00e3o poderia ser mais simples: quer\u00edamos que o Mailgun encaminhasse todas as mensagens enviadas para *@taskbox.kanban2go.com a um URL no nosso aplicativo, http:\/\/kanban2go.com\/mailgun\/receive. A a\u00e7\u00e3o nesse URL processar\u00e1 a mensagem recebida de forma apropriada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O que \u00e9 \u00f3timo sobre as rotas \u00e9 que elas oferecem suporte a <a href=\"http:\/\/en.wikipedia.org\/wiki\/Regular_expression\" target=\"_tabs\" rel=\"noopener noreferrer\">express\u00f5es regulares<\/a> e at\u00e9 mesmo <a href=\"http:\/\/www.regular-expressions.info\/named.html\" target=\"_tabs\" rel=\"noopener noreferrer\">captura nomeada<\/a> que \u00e9 repassada \u00e0s a\u00e7\u00f5es, proporcionando uma enorme flexibilidade a voc\u00ea.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As rotas s\u00e3o configuradas na aba de rotas do painel de controle do Mailgun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primeiro criamos uma express\u00e3o de filtro, que voc\u00ea pode considerar como uma express\u00e3o regular para o Mailgun. No nosso caso, queremos corresponder a todas as mensagens enviadas para o nosso dom\u00ednio.\n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>match_recipient('.*@taskbox.kanban2go.com')<\/code> A seguir, definimos uma a\u00e7\u00e3o que orienta o Mailgun sobre o que fazer assim que ele obtiver uma correspond\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>forward(\"http:\/\/kanban2go.com\/mailgun\/receive\"), stop()<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste caso, estamos encaminhando a mensagem para o nosso aplicativo e, em seguida, parando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Mailgun analisar\u00e1 as mensagens para voc\u00ea, oferecendo alguns recursos pr\u00e1ticos, ou voc\u00ea pode optar por receber a mensagem bruta. Como n\u00e3o estamos fazendo nada sofisticado e isso nos poupa trabalho, optamos por receber as mensagens j\u00e1 analisadas pelo Mailgun.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 aqui que grande parte da m\u00e1gica acontece. Quando o Mailgun recebe uma mensagem correspondente, ele a processa e envia uma solicita\u00e7\u00e3o POST ao URL fornecido na rota do Mailgun. Os par\u00e2metros dessa solicita\u00e7\u00e3o incluem o remetente, o assunto, o corpo e diversas outras coisas \u00fateis. <a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Consulte a documenta\u00e7\u00e3o<\/a> para obter mais informa\u00e7\u00f5es sobre as rotas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Passo 3- Receber e-mails com Rails<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Agora que temos o Mailgun nos enviando solicita\u00e7\u00f5es POST, precisamos configurar o nosso aplicativo Rails para lidar com elas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No kanban2go, um usu\u00e1rio tem muitas tarefas. Toda tarefa tem um atributo chamado &#8220;content&#8221;, que cont\u00e9m o texto da tarefa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No nosso aplicativo Rails, precisamos lidar com as solicita\u00e7\u00f5es POST do Mailgun em <code>http:\/\/kanban2go.com\/mailgun\/receive<\/code>. O primeiro passo \u00e9 criar uma rota para a nossa nova a\u00e7\u00e3o no arquivo routes.rb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>post '\/mailgun\/receive' =&gt; 'mailgun#receive'<\/code> A seguir, precisamos criar um MailgunController com uma a\u00e7\u00e3o de &#8220;receive&#8221; em <code>mailgun_controller.rb<\/code><\/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=\"Copiar para a \u00e1rea de transfer\u00eancia\" data-clipboard-success-label=\"Copiado!\" data-clipboard-error-label=\"N\u00e3o foi poss\u00edvel copiar\" data-tooltip=\"Copiar para a \u00e1rea de transfer\u00eancia\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copiar para a \u00e1rea de transfer\u00eancia\">\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                                    class MailgunController &lt; ApplicationControllerrn  protect_from_forgery :except =&gt; [:receive]rn  def receivern    user = User.find_by_taskbox_address(params[&#039;recipient&#039;])rn    stripped_text = params[&#039;stripped-text&#039;]rn    if userrn      Task.create(:user =&gt; user, :content =&gt; stripped_text)rn    endrn    render :nothing =&gt; truern  endrnend\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\">Note que devemos desativar a prote\u00e7\u00e3o contra falsifica\u00e7\u00e3o para a a\u00e7\u00e3o receive. Para obter mais informa\u00e7\u00f5es sobre como protect_from_forgery funciona, h\u00e1 uma \u00f3tima explica\u00e7\u00e3o no <a href=\"http:\/\/guides.rubyonrails.org\/security.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Guia de Seguran\u00e7a do Rails<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A primeira coisa a fazer na a\u00e7\u00e3o de recebimento \u00e9 buscar o usu\u00e1rio ao qual a mensagem foi enviada. Para fazer isso, atribu\u00edmos a cada usu\u00e1rio um endere\u00e7o de e-mail exclusivo da caixa de tarefas (em um atributo &#8220;taskbox_address&#8221;) na primeira vez em que o usu\u00e1rio \u00e9 criado. Por exemplo, um taskbox_address pode ser &#8220;hard_to_guess74623@taskbox.kanban2go.com&#8221;. O importante \u00e9 que o nome de usu\u00e1rio do endere\u00e7o deve ser exclusivo e dif\u00edcil de adivinhar. Em seguida, encontramos o usu\u00e1rio com o m\u00e9todo User.find_by_taskbox_address (que \u00e9 enviado pelo Mailgun como o par\u00e2metro &#8220;recipient&#8221;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em seguida, extra\u00edmos o par\u00e2metro &#8220;stripped-text&#8221; da solicita\u00e7\u00e3o. Isso \u00e9 algo que o Mailgun fornece quando analisa uma mensagem de e-mail. O &#8220;stripped-text&#8221; \u00e9 apenas o corpo do e-mail, sem nenhuma parte citada ou assinatura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se encontrarmos um usu\u00e1rio, criamos uma tarefa pertencente a ele e definimos o conte\u00fado da tarefa como o texto extra\u00eddo (stripped-text). Se n\u00e3o encontrarmos um usu\u00e1rio, nada acontece.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Passo 4- Relaxar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">E \u00e9 isso. E isso \u00e9 tudo o que h\u00e1 para transformar e-mails em tarefas com o Mailgun. Claro, este \u00e9 um exemplo muito simples. Dependendo das suas necessidades de seguran\u00e7a e privacidade, talvez seja necess\u00e1rio passar por algumas verifica\u00e7\u00f5es e l\u00f3gicas adicionais no seu aplicativo, mas a parte dif\u00edcil \u00e9 feita para voc\u00ea no Mailgun: o roteamento, a an\u00e1lise e a filtragem de spam.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Espero que isso ajude a esclarecer por que voc\u00ea n\u00e3o precisa mais ter medo do manuseio de e-mails no seu aplicativo. H\u00e1 um mundo de possibilidades: basta usar a criatividade.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea est\u00e1 pensando em incluir o tratamento de e-mails no seu aplicativo? Tem alguma ideia sobre a abordagem descrita aqui? Compartilhe o que achou nos coment\u00e1rios do blog ou participe <a href=\"http:\/\/news.ycombinator.com\/item?id=5227352\" target=\"_tabs\" rel=\"noopener noreferrer\">da conversa no HackerNews<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><i>Divulga\u00e7\u00e3o completa: o fundador do kanban2go.com, Prabhakar Gopalan, trabalha na Rackspace, a empresa controladora do Mailgun. O kanban2go.com \u00e9 anterior ao trabalho de Prabhakar na Rackspace.<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O usu\u00e1rio envia uma mensagem de e-mail e voc\u00ea precisa receb\u00ea-la e process\u00e1-la de alguma forma. Como fazer isso? Leia mais \u2013<\/p>\n","protected":false},"author":13,"featured_media":4555,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[22],"class_list":["post-24069","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-product"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Como o kanban2go cumpre a Lei de Zawinski - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"O usu\u00e1rio envia uma mensagem de e-mail e voc\u00ea precisa receb\u00ea-la e process\u00e1-la de alguma forma. Como fazer isso? 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\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como o kanban2go cumpre a Lei de Zawinski - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"O usu\u00e1rio envia uma mensagem de e-mail e voc\u00ea precisa receb\u00ea-la e process\u00e1-la de alguma forma. Como fazer isso? Leia mais \u2013\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 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\\\/product\\\/como-o-kanban2go-cumpre-a-lei-de-zawinski\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-o-kanban2go-cumpre-a-lei-de-zawinski\\\/\",\"name\":\"Como o kanban2go cumpre a Lei de Zawinski - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-o-kanban2go-cumpre-a-lei-de-zawinski\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-o-kanban2go-cumpre-a-lei-de-zawinski\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"datePublished\":\"2026-09-16T10:55:30+00:00\",\"description\":\"O usu\u00e1rio envia uma mensagem de e-mail e voc\u00ea precisa receb\u00ea-la e process\u00e1-la de alguma forma. Como fazer isso? Leia mais \u2013\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-o-kanban2go-cumpre-a-lei-de-zawinski\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-o-kanban2go-cumpre-a-lei-de-zawinski\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-o-kanban2go-cumpre-a-lei-de-zawinski\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-Product.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/pt\\\/blog\\\/product\\\/como-o-kanban2go-cumpre-a-lei-de-zawinski\\\/#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\":\"Como o Kanban2go cumpre a Lei de Zawinski\"}]},{\"@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":"Como o kanban2go cumpre a Lei de Zawinski - Transactional Email API Service For Developers | Mailgun","description":"O usu\u00e1rio envia uma mensagem de e-mail e voc\u00ea precisa receb\u00ea-la e process\u00e1-la de alguma forma. Como fazer isso? 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\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/","og_locale":"pt_BR","og_type":"article","og_title":"Como o kanban2go cumpre a Lei de Zawinski - Transactional Email API Service For Developers | Mailgun","og_description":"O usu\u00e1rio envia uma mensagem de e-mail e voc\u00ea precisa receb\u00ea-la e process\u00e1-la de alguma forma. Como fazer isso? Leia mais \u2013","og_url":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/","url":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/","name":"Como o kanban2go cumpre a Lei de Zawinski - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","datePublished":"2026-09-16T10:55:30+00:00","description":"O usu\u00e1rio envia uma mensagem de e-mail e voc\u00ea precisa receb\u00ea-la e process\u00e1-la de alguma forma. Como fazer isso? Leia mais \u2013","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-Product.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/pt\/blog\/product\/como-o-kanban2go-cumpre-a-lei-de-zawinski\/#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":"Como o Kanban2go cumpre a Lei de Zawinski"}]},{"@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\/24069","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":0,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog\/24069\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/media\/4555"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/media?parent=24069"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/pt\/wp-json\/wp\/v2\/blog_category?post=24069"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}