Estudos de caso
Como a UserVoice resolveu seu problema de e-mail de entrada
Há cerca de dois anos, rodávamos o sistema de tickets da UserVoice em nossos próprios servidores Postfix. Desde então, mudamos para o Mailgun tanto para e-mail de entrada quanto para e-mail de saída, e estamos muito felizes com isso. Aqui está nossa história e os problemas com os quais lidamos em relação ao e-mail de entrada.
E-mail de entrada antes do Mailgun
Nosso sistema de tickets inicial usava o Postfix para lidar com o e-mail de entrada (e de saída). O Postfix é um software muito sólido, mas um pouco desatualizado e, honestamente, sua documentação é um tanto confusa. Isso é agravado pelo fato de que não estávamos configurando o Postfix de uma maneira “normal”. A maioria dos tutoriais e exemplos mostra como configurar usuários isolados e caixas de correio dentro do Postfix, mas queríamos gerenciar tudo isso dentro do nosso aplicativo Rails.
Depois de fuçar muito, finalmente conseguimos fazê-lo funcionar. Fizemos um script shell ser executado para cada e-mail de entrada, que adicionava o e-mail ao Redis por meio de um job do Resque.
Dentro do job do resque, analisávamos o e-mail usando o TMail. Um problema que enfrentamos foi com as codificações. Nosso aplicativo Rails foi projetado para funcionar com suporte a codificação UTF-8 e Ruby 1.9.3, mas o TMail tem suporte a codificações legadas. Tentamos a nova gem Mail, mas ela falhava ao analisar um e-mail se houvesse algo “estranho” nele. O e-mail é como o velho oeste: vale tudo. Seu parser deve ser extremamente robusto, e a gem Mail (há ~2 anos) não era.
Depois de analisar o e-mail, precisamos analisar o corpo para separar as novas partes do e-mail do histórico/thread citada do e-mail. Nossa primeira versão era relativamente ingênua e basicamente apenas dividia em “Em xx/xx/xxxx, Alguém respondeu:”. Considerávamos então a parte superior como a nova porção da mensagem. Nosso sistema não lidava muito bem com respostas “inline”.
Se houvesse algum problema e precisássemos encontrar diagnósticos, tínhamos que acessar nossa máquina do postfix via ssh e usar o grep em nossos logs. Isso era aceitável, mas nossa equipe de suporte menos técnica não conseguia resolver problemas de forma autônoma.
Em termos de redundância ou escalabilidade, tínhamos apenas uma máquina. Felizmente ela nunca caiu, e felizmente não precisamos escalar.
Depois do Mailgun
O Mailgun resolve todos esses problemas.
Primeiro, não precisamos mais lutar com o Postfix. Ao configurar uma regra “catch_all” simples no Mailgun, todos os e-mails endereçados a *@*.uservoice.com são enviados aos nossos servidores via HTTP.
Esses e-mails vêm pré-analisados. Tudo que é enviado aos nossos servidores chega em UTF-8. Só isso já vale seu peso em ouro.
Além disso, o Mailgun separa automaticamente as novas partes da mensagem da thread. Elas são incluídas como um parâmetro chamado “stripped-text” no webhook, que é exatamente o que precisamos quando mostramos uma mensagem na UserVoice. Não precisamos mais manter uma coleção confusa de expressões regulares. Além disso, ele lida automaticamente com respostas “inline”.
Nossa equipe de suporte tem logs totalmente pesquisáveis de todas as mensagens de entrada e de saída. Chega de procurar mensagens com o grep, e a interface que o Mailgun fornece é completamente acessível à nossa Equipe de Suporte.
Finalmente, não precisamos mais nos preocupar em escalar nossos servidores, failover e coisas dessa natureza. O Mailgun cuida de tudo isso para nós.
A melhor parte do Mailgun
A equipe técnica do Mailgun e seu suporte são de primeira linha. Eles são sempre responsivos e úteis. Eles nos ajudaram e implementaram recursos essenciais quando precisávamos deles para fechar com certos clientes. Eles nos avisam proativamente sobre problemas (como spam para clientes) e possíveis problemas de configuração. Eles também nos ajudam a rastrear problemas quando nossos clientes têm dificuldades para encaminhar e-mail. Como uma empresa totalmente focada em melhorar o suporte ao cliente, nós gostamos disso!
“Conseguimos garantir melhor atendimento aos nossos profissionais de marketing usando o Mailgun. Eles contam conosco, e nós contamos com o Mailgun: e esse relacionamento nos ajuda a manter a credibilidade com nossos clientes.”