Corrigindo erros de digitação em endereços de email inseridos pelo usuário

3

Nós vemos alguns erros de digitação em nossa fila de e-mails de tempos em tempos e eu estive pensando em usar nosso servidor DNS interno para corrigir os erros dessas pessoas.

Alguns exemplos da fila de mensagens atual:

g-mail.com
hotail.com
hotmai.com
hotmaiil.com
hotmal.com
htomail.com
rediffmai.com
yahii.com

Os domínios acima não têm registros MX, mas é fácil ver o que o usuário quis dizer quando o digitou.

Os e-mails em questão geralmente são e-mails de confirmação de inscrição para que o usuário não possa fazer login e corrigir seu próprio endereço de e-mail e executar um trabalho cron que o conserte no banco de dados não enviará o e-mail de confirmação novamente.

Configurar nosso DNS interno para resolver essas pesquisas MX para os endereços adequados do Hotmail, do Gmail ou do Yahoo (ou qualquer outro) provavelmente resultaria na conclusão dos correios na caixa de entrada correta. Um cron job também pode corrigir seu endereço de e-mail no banco de dados.

A melhor solução seria fazer a pesquisa MX no código de verificação de inscrição / e-mail no servidor da web para que possamos dar ao usuário uma mensagem de erro enquanto ainda estão no site, mas eu sou administrador de sistema e posso obter o tempo de desenvolvimento aprovado para isso.

Alguém pode ver algum problema potencial ao redirecionar e-mails com erros de digitação usando o DNS?

Atualização:

Eu pensei em um problema que potencialmente destrói toda essa ideia. Assumindo que corrigimos os domínios de erro de digitação usando o DNS, quando nos conectamos ao servidor de e-mail alvo, vamos (em algum momento) dizer:

RCPT TO: < [email protected]>

E o servidor do Hotmail provavelmente irá rejeitá-lo porque eles não aceitam e-mail para o hotmal.com e eles não retransmitirão mensagens para mim. O problema é que não corrigimos o endereço. Tudo o que fizemos foi apontar nosso MTA para o servidor correto como se tivéssemos o endereço correto.

Eu também encontrei este arquivo de lista de discussão que tem uma solução diferente para os domínios de typo. Isso não resolve o problema de deixar os usuários saberem, mas faz com que os e-mails saiam da minha fila de mensagens muito rapidamente.

    
por Ladadadada 27.09.2011 / 12:11

5 respostas

6

O maior problema será falsos positivos - ou seja, aqueles erros de digitação que você corrige no domínio errado.

Usando um erro de digitação que provavelmente não aconteceria, você pode receber:

gotmail.com

você muda isso para

hotmail.com

ou

gmail.com

O usuário poderia ter significado também.

É muito mais simples devolvê-las ao usuário com uma mensagem de "domínio não reconhecido" e permitir que elas façam a correção.

    
por 27.09.2011 / 12:19
2

Não consigo ver o problema que você está tentando resolver. Você deseja enviar confirmações de inscrição. Mas como você não pode enviar confirmações de inscrição para domínios que não existem, não haverá inscrição. Isso está ok. Solte o usuário que não pôde ser confirmado e deixe-o se inscrever novamente. É assim que é. Isso é chamado de Double-Opt-In e é obrigatório para verificar os endereços de e-mail.

Normalmente, esses e-mails nem deveriam estar na fila:

  1. Se o domínio não existir, o email deve ser devolvido imediatamente (hora de desconectar o usuário instantaneamente).
  2. Se o domínio resolver, mas atingir um usuário inexistente, o email será devolvido imediatamente (hora de abandonar o usuário).
  3. Se o domínio for resolvido, mas o servidor adiar temporariamente o e-mail, você não poderá decidir se o e-mail será entregue mais tarde ou se é um endereço inválido (tempo de espera pelas opções 2 ou 4)
  4. Se o domínio for resolvido e o usuário for válido, o e-mail será entregue instantaneamente (tempo para aguardar a confirmação, mas o e-mail está fora da fila)
por 27.09.2011 / 13:03
1

Concordo com o ChrisF sobre os falsos positivos. Ultimamente tenho trabalhado com endereços de e-mail retirados do nosso sistema ERP e me deparei com muitos problemas. Apenas como exemplo, um dos nossos principais ISPs é a Optus. Pelo que me lembro, com base apenas no que não é devolvido, seus domínios de e-mail podem ser qualquer um dos

  • optusnet.net
  • optusnet.com
  • optus.com.au
  • optus.net.au
  • optusnet.net.au
  • optusnet.com.au

... e possíveis outros que eu não conheço.

Se eu vir um inválido, mas parece que deveria ser um endereço Optus, é só dar um palpite sobre qual deles está correto? Afinal, pode ser qualquer um desses, ou nenhum deles.

    
por 27.09.2011 / 12:45
0

Eu vejo o que você está tentando fazer, mas eu não faria isso no nível do DNS. Por que você não escreve / codifica no aplicativo?

Verifique a lista e peça ao visitante para confirmar o nome de domínio. Este é um erro do usuário, não um problema no servidor.

    
por 27.09.2011 / 14:03
0

A nossa função de validação de e-mail verifica se o nome de domínio do endereço de e-mail tem um registro MX. Ajuda a evitar erros de digitação e reduz drasticamente o spam também.

    
por 27.09.2011 / 16:56