Design do servidor de email: evitando loops [fechado]

Digamos que você esteja criando um servidor de e-mail sofisticado com suporte a regras (como encaminhamento condicional, etc.). O antigo problema dos loops de e-mail o encarava:

1) Digamos que você estabeleceu uma regra que encaminha todos os seus emails para outro endereço. E se esse endereço não existir e o postmaster nesse domínio enviar mensagens de volta para você, informando isso. Obviamente, sua regra não faz distinção para essas mensagens e as encaminha também, criando um loop.

2) Outra situação são dois usuários, usando esse cliente, configurando regras de encaminhamento para o endereço um do outro. Tudo o que precisamos é de uma única mensagem inicial e eles irão girar em um loop.

3) Ou, que tal um caso de resposta automática, em que o cliente encaminha para um endereço que responde automaticamente, causando mais um loop.

Não sou especialista nessas coisas, mas não parece que a detecção de loops funcionaria. Certamente poderíamos apresentar algumas heurísticas, mas parece não existir um algoritmo genérico.

Uma solução em que estive pensando não envolve a detecção. Em vez disso, apenas observamos as contas com atividade de envio alto de email (ou atividade de envio alto causada por regras) e desabilitamos temporariamente o email / regras para essas contas até que eles corrigam o problema. No entanto, essa solução precisa percorrer a linha entre contas que causam loops e contas que simplesmente recebem muito correio e o encaminham para outro lugar.

Também podemos aplicar a otimização a todas as contas e garantir que, se os loops forem iniciados, eles não consumam uma tonelada de largura de banda. Isso não impedirá a execução de loops até que as caixas de correio sejam preenchidas.

Faltam algumas boas soluções?

questionAnswers(3)

yourAnswerToTheQuestion