Os Desafios de Se Enviar Um Milhão de Emails

Autor ConvidadoPedro Axelrud é desenvolvedor Ruby on Rails na Softa e reponsável pela infra do Mailee.me. Viciado em internet e fotógrafo nas horas vagas.

No final do StartUp MeetUp em Porto Alegre, entre uma cerveja e outra, eu conversava com o Diego Gomes sobre envio de emails. Ele, depois de saber que eu trabalhava na Softa e era o responsável pela infraestrutura do Mailee.me, me contou que teve uma péssima surpresa quando precisou enviar um milhão de emails por conta própria. (N.D.E. Eu não sou spammer! Juro!)

Preciso confessar que enviar emails para uma grande quantidade de pessoas é muito mais difícil do que parece. Existem vários obstáculos que começam a aparecer a medida que o volume e a periodicidade aumentam.

A idéia do Diego foi subir várias máquinas virtuais, fazer o envio com elas e depois desligá-las, o que hoje se faz facilmente com o Cloud Computing, barateando o custo, pois pagam-se somente as horas que as máquinas estiveram ligadas. Uma vez com a infraestrutura à sua disposição, podendo crescer sob demanda, só é preciso um simples pedaço de código que vá colocando essas mensagens na fila e pronto.

Parece fantástico, não? Pois é, na teoria essa ideia não tem como dar errado, mas acredite, ela vai dar, e muito. Vamos entender um pouco o porquê.

Cada servidor de destino define um volume máximo de mensagens por IP que aceita receber em um determinado período de tempo (normalmente definido por hora). Quando esse limite é ultrapassado, esse servidor irá começar a recusar suas mensagens, mesmo que elas sejam para endereços válidos.

Bom, mas até aí a idéia das várias máquinas virtuais continua válida, pois poderíamos limitar o envio em cada máquina (IP) por domínio de destino.

Só que todo IP que envia emails tem uma reputação que vai sendo construída com o tempo. Se essa reputação for boa, um percentual maior dos emails vai ser entregue na caixa de entrada. Aí começa o problema da idéia inicial. Não sabemos qual era o uso anterior do IP dessa máquina virtual, e como o modelo de Cloud Computing nos permite descartá-la e renová-la facilmente, o IP dela pode vir já com uma reputação ruim.

Tudo bem, concordo que essa possibilidade parece bem remota. Só que não é bem visto pegar um IP que não era usado para enviar emails, ou seja, tinha um volume baixo demais para ter uma reputação medida, e sair enviando milhares de mensagens por hora. Isso vai resultar em uma taxa de entrega muito ruim. Os provedores não tem como conhecer quais são as suas práticas, e pegar um IP do nada e sair enviando milhares de mensagens é um comportamento que parece bastante spammer.

Como solucionar esse problema então? É preciso fazer o que se chama de IP warm up, um aquecimento desse endereço. Para isso é necessário que o seu volume de envios vá crescendo gradualmente, começando com 100 emails por dia, depois 200, 400… até chegar ao seu volume normal.

Quando se fala em envio de emails não podemos comparar o resultado obtido com vários servidores em Cloud, com apenas alguns dias de vida, com o resultado obtido em um farm de servidores, com alguns meses (se possível anos) de vida. O Cloud Computing é visto como a solução para todos os problemas de hospedagem, mas tem um detalhe que as hospedagens esquecem de mencionar: o ambiente virtualizado não é bom quando se precisa de muita leitura e escrita em disco. Enviar e-mails é manipular filas em disco, ou seja o que você mais precisa é ter uma grande vazão de dados entre disco e memória.

Outro ponto muito importante para a entrega é fazer o controle dos retornos (bounces). Existem os hard bounces (falhas permanentes), como uma conta não existente, por exemplo, e os soft bounces (falhas temporárias) como caixa cheia, ou servidor sobrecarregado. No caso de um hard bounce você deve remover o contato da sua lista para os próximos envios. Para um soft bounce você pode tentar mais algumas vezes, mas se depois de 3 ou 4 mensagens o erro continuar, você deve desistir daquele contato. Ignorar esses retornos também é uma prática muito mal vista que pode ferir sua reputação. No Mailee.me, por exemplo, nós validamos todos os emails que são importados antes de realizar o primeiro envio, isso já descarta os inválidos e nos dá uma boa ideia da origem dessa lista.

Falando um pouco mais dos detalhes que te ajudam a entregar: uma prática muito recomendada é o uso do SPF, um registro no DNS do seu domínio que especifica quais servidores estão autorizados a enviar pelo domínio. Outra boa prática é assinar as mensagens com DKIM, uma espécie de assinatura da mensagem. Você gera uma chave de assinatura, coloca no seu domínio, e assina todas as mensagens que sairem do seu servidor com ela.

Existem também outros fatores que influenciam a sua reputação: entrada do seu endereço em blacklists, emails enviados pelo seu servidor sendo reportados como spam, falta de um DNS reverso, entre vários outros que dariam origem a mais alguns posts como esse. Mas eu prefiro dizer o seguinte: mande emails somente para pessoas que realmente aceitaram e estão interessadas no que você tem a dizer. Todos saem prejudicados quando se envia spam: o custo de envio é muito maior, a reputação dos servidores de email é prejudicada, e na ponta final o contato que receber provavelmente não vai nem se interessar pelo que você têm a dizer.

Por todos esses fatores é que tentar enviar um grande volume de emails sem ter uma infraestrutura apropriada requer muito mais do que parece. É preciso ter uma boa estrutura de hardware, com máquinas (na verdade IPs) com uma reputação já estabelecida, e a configuração padrão de um servidor de emails também não se preocupa a maior parte desses detalhes, portanto prepare-se pra muitas horas estudando e configurando o servidor.

Se você quiser se aventurar e tentar enviar mesmo assim, lembro que todas as burocracias para se enviar foram feitas para barrar os spammers. Apesar de elas dificultarem um pouco a vida de quem quer enviar direito, seguindo algumas das boas práticas e enviando somente para contatos que solicitaram as mensagens, é possível ter uma taxa de entrega relativamente boa mesmo quando se envia para um grande volume de contatos.

0 responses to “Os Desafios de Se Enviar Um Milhão de Emails

  1. Estou pesquisando para um grupo enviar um milhão de emails, que empresa pode fazer isso e quanto custará
    (81)34792986/88599178

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *