Um desenvolvedor me contou certa vez sobre quando eles "otimizaram" o sistema de envio de email. O sistema antigo enviava emails de forma sequencial, um de cada vez. Dolorosamente lento. Então eles paralelizaram—50 conexões simultâneas, disparando emails tão rápido quanto a rede aguentava.
O primeiro lote de 10,000 emails saiu em menos de um minuto. Então o Gmail começou a retornar erros 421: "Too many connections from your IP." A Microsoft veio em seguida com rejeições semelhantes. O Yahoo enfileirou tudo por horas. A "otimização" tinha acionado throttling de todos os principais provedores de email simultaneamente.
Throttling de email existe porque servidores de recebimento precisam se proteger contra abuso. Entender como isso funciona—e como operar dentro dessas restrições—é essencial para uma entrega de email confiável.
Por que o throttling existe
Servidores de email enfrentam uma enxurrada constante de tentativas de conexão. Spammers tentam entregar milhões de mensagens o mais rápido possível antes de serem bloqueados. Remetentes legítimos às vezes configuram sistemas de forma incorreta e, sem querer, inundam servidores. Contas comprometidas podem virar canhões de spam sem aviso.
Throttling é o mecanismo de defesa. Ao limitar quantas conexões um remetente pode fazer, quantas mensagens pode enviar por conexão e quão rápido pode enviar, os servidores de recebimento se protegem de serem sobrecarregados.
Os limites não são arbitrários. Eles são calibrados com base na reputação do remetente, nos padrões históricos e na carga atual do servidor. Um remetente com excelente reputação e padrões consistentes recebe limites generosos. Um remetente desconhecido ou com padrões suspeitos recebe limites rígidos. Um remetente atualmente exibindo comportamento semelhante a spam pode ser bloqueado completamente.
Isso cria um ciclo de feedback. Bons remetentes que respeitam os limites mantêm boa reputação e recebem limites mais altos. Maus remetentes que tentam contornar os limites prejudicam sua reputação e enfrentam uma aplicação mais rígida.
Tipos de throttling
Throttling se manifesta de várias formas, e reconhecer cada uma ajuda você a responder apropriadamente.
Limites de conexão restringem quantas conexões simultâneas você pode ter com um servidor. Se tentar abrir conexões demais, novas conexões serão rejeitadas. Esse costuma ser o primeiro limite que você vai atingir se estiver enviando de forma agressiva.
Limites de taxa restringem quantas mensagens você pode enviar por unidade de tempo—por minuto, por hora, por dia. Mesmo com uma única conexão, enviar mensagens demais muito rapidamente aciona a limitação de taxa.
Adiamentos temporários são rejeições brandas. O servidor aceita sua conexão, mas retorna um código de erro 4xx dizendo "try again later." Seu email não é rejeitado permanentemente; você só está sendo solicitado a desacelerar. Sistemas de email adequados automaticamente tentam novamente com atrasos crescentes.
Rejeições permanentes (erros 5xx) são falhas mais severas. Elas podem indicar que você excedeu os limites de tal forma que o servidor não aceitará seu email de jeito nenhum, pelo menos por enquanto. Ou podem indicar um problema de reputação além do simples throttling.
Greylisting é uma técnica específica na qual servidores rejeitam temporariamente emails de remetentes desconhecidos, esperando que servidores legítimos façam nova tentativa. Spammers muitas vezes não tentam novamente; servidores legítimos fazem. Se você vir rejeições temporárias que têm êxito na tentativa subsequente, o greylisting pode ser a causa.
Lendo os sinais
Quando você enfrenta throttling, as mensagens de erro geralmente dizem o que está acontecendo—se você souber como lê-las.
Um erro 421 normalmente significa "temporary problem, try again." Mensagens como "Too many connections" ou "Rate limit exceeded" são explícitas. Outras são mais vagas: "Try again later" sem explicação. De qualquer forma, a resposta é a mesma: recue e tente novamente.
Um erro 450 geralmente indica que o servidor do destinatário quer que você diminua o ritmo. É um sinal mais suave do que 421, mas o significado é semelhante.
Um erro 550 é mais sério—é uma rejeição permanente. Mas o contexto importa. "550 Message rejected due to sending rate" sugere que você ultrapassou o throttling e entrou no território de dano de reputação. "550 User unknown" é um problema completamente diferente.
A redação específica varia por provedor. As mensagens de erro do Gmail são relativamente claras. As da Microsoft podem ser crípticas. Alguns servidores oferecem explicações detalhadas; outros emitem rejeições genéricas. A experiência ajuda a interpretar esses sinais.
Implementando throttling corretamente
Seu sistema de envio de email precisa respeitar limites de taxa de forma proativa, não apenas reagir quando você os atinge.
Comece com padrões conservadores. Se você não conhece os limites de um servidor de recebimento, presuma que são rígidos. Algumas centenas de mensagens por hora para um único domínio é um ponto de partida seguro. Você pode aumentar conforme aprende os limites reais.
Implemente backoff exponencial para tentativas. Quando você receber uma rejeição temporária, não tente novamente imediatamente. Aguarde um minuto e tente de novo. Se for rejeitado novamente, aguarde dois minutos. Depois quatro. Esse padrão evita que você martele um servidor que já está pedindo para você desacelerar.
Espalhe seu envio ao longo do tempo. Se você precisa enviar 100,000 emails, não tente enviá-los todos em uma hora. Distribua ao longo do dia. Isso suaviza seu padrão de envio e reduz a chance de atingir limites de taxa.
Respeite limites por domínio. Os limites do Gmail são diferentes dos da Microsoft, que são diferentes dos do Yahoo. Seu sistema deve rastrear taxas de envio por domínio de destino e aplicar throttling de acordo. Enviar 10,000 emails para o Gmail em uma hora pode ser aceitável; enviar 10,000 para o servidor de email de uma empresa pequena provavelmente não é.
Monitore e adapte. Acompanhe suas taxas de entrega, taxas de erro e tipos de erro por destino. Se você estiver atingindo limites consistentemente com um determinado provedor, reduza sua taxa de envio para ele. Se você nunca atinge limites, talvez possa aumentar a vazão.
Considerações específicas por provedor
Os principais provedores de email publicam orientações sobre seus limites de taxa, embora os detalhes frequentemente permaneçam vagos.
O Gmail geralmente permite volumes maiores de remetentes com boa reputação. Eles não publicam números exatos, mas fornecem feedback por meio do Postmaster Tools. Se você estiver vendo throttling, verifique sua reputação lá—reputação baixa significa limites mais rígidos.
A Microsoft historicamente tem sido mais agressiva com throttling, especialmente para novos remetentes. Seus limites parecem ser mais baseados em conexão do que em mensagens. Reduzir conexões concorrentes costuma ajudar mais do que reduzir a taxa de mensagens.
O Yahoo e outras propriedades da Verizon Media têm seus próprios padrões. Em geral são mais tolerantes a volume, mas podem ser rígidos quanto ao comportamento de conexão.
Provedores de email menores variam bastante. Uma empresa que roda seu próprio servidor de email pode ter limites muito baixos simplesmente porque sua infraestrutura não suporta alto volume. Ao enviar para destinatários diversos, seu sistema precisa lidar com essa heterogeneidade.
Quando o throttling indica problemas maiores
Às vezes, throttling é apenas throttling—você está enviando rápido demais, desacelere, problema resolvido. Mas às vezes é sintoma de problemas de reputação.
Se você estiver sofrendo throttling em volumes que antes funcionavam bem, sua reputação pode ter se degradado. Verifique aumento em reclamações de spam, taxas de bounce ou acertos em spam traps. O throttling pode ser um sinal de alerta antes de bloqueios mais sérios.
Se você estiver sofrendo throttling imediatamente em um novo IP ou domínio, isso é normal—você ainda não construiu reputação. Mas se o throttling persistir após um aquecimento adequado, há algo mais errado.
Se um provedor aplicar throttling pesado enquanto outros não, investigue o que há de diferente no seu tráfego para aquele provedor. Talvez seu conteúdo acione filtros específicos deles, ou talvez você tenha problemas de reputação específicos do sistema deles.
Throttling persistente apesar de baixo volume e boas práticas sugere que você deve contatar o provedor diretamente. Grandes ISPs têm canais de contato de postmaster para remetentes legítimos que estão enfrentando problemas de entrega.
Construindo sistemas que lidam com throttling de forma elegante
Uma boa infraestrutura de email trata o throttling como uma condição normal de operação, não como um erro.
Gerenciamento de filas é essencial. Quando você não pode enviar imediatamente, as mensagens precisam de um lugar para esperar. Sua fila deve suportar milhões de mensagens, se necessário, com a devida priorização (transacionais antes de marketing, por exemplo).
A lógica de retentativas precisa ser sofisticada. Tipos de erro diferentes exigem estratégias de nova tentativa diferentes. Adiamentos temporários devem tentar novamente relativamente rápido com backoff. Rejeições permanentes não devem tentar novamente. Respostas de greylisting devem tentar novamente após um atraso específico.
O monitoramento deve alertar sobre padrões de throttling, não apenas falhas. Se sua taxa de entrega ao Gmail cair 50%, você quer saber antes que isso vire um bloqueio completo.
O planejamento de capacidade deve levar em conta o throttling. Se você só consegue entregar 10,000 emails por hora ao Gmail devido a limites de taxa, e você tem 100,000 destinatários no Gmail, você precisa de 10 horas de tempo de envio. Planeje de acordo.
Frequently asked questions
Como descubro os limites de taxa de um provedor?
A maioria dos provedores não publica limites exatos. Comece de forma conservadora e aumente gradualmente enquanto monitora sinais de throttling. O Google Postmaster Tools e o Microsoft SNDS oferecem alguma visibilidade sobre como seus envios estão sendo recebidos.
Devo usar múltiplos IPs para evitar throttling?
Às vezes, mas com cuidado. Distribuir a carga entre IPs pode ajudar com limites de conexão. Mas se você estiver sofrendo throttling por causa de reputação, adicionar IPs apenas espalha a má reputação. Corrija o problema subjacente primeiro.
Quanto tempo preciso esperar após sofrer throttling?
Depende da gravidade. Throttling leve pode se dissipar em minutos. Throttling severo ou soft blocks pode exigir horas ou até um dia. As mensagens de erro às vezes indicam o tempo; caso contrário, o backoff exponencial é seu aliado.
Throttling é o mesmo que estar em uma blacklist?
Não. Throttling é uma limitação temporária de taxa—desacelere e você pode continuar enviando. Blacklisting é um bloqueio mais permanente que requer remediação. Throttling persistente pode levar a blacklisting se você não tratar a causa subjacente.