Gostaria de fornecer um clique em "Cancelar inscrição" no rodapé dos e-mails que meu serviço envia.
Obviamente, muitos verificadores de spam verificam e-mails e seguem os links encontrados nos e-mails para verificar se há malware em seu conteúdo. Uma solução alternativa que usei até agora:
- Se a página "Cancelar inscrição" for solicitada via HTTP GET, ela renderizará um formulário de confirmação simples e um pouco de JS que envia o formulário no carregamento da página
- Se a página "Cancelar inscrição" for solicitada via HTTP POST, cancelamos a inscrição do usuário
Dessa forma, o usuário normalmente precisará apenas de um único clique no formulário e receberá a mensagem "Você foi cancelado". Se eles tiverem o JS desativado, ainda poderão enviar manualmente o formulário de confirmação.
Agora, o problema é que alguns scanners como o ATP do Office365 abrirão as páginas e executarão o JS dentro delas . Ao executar o JS, eles enviam o formulário e fazem com que o usuário seja cancelado automaticamente a inscrição.
Considerei adicionar verificações à lógica JS de envio automático:
- não envie automaticamente para agentes de usuários específicos
- não envie automaticamente para intervalos de IP de clientes específicos
- acionar o evento de envio automático ao mover o mouse
Mas todos esses parecem métodos frágeis, na melhor das hipóteses, que podem quebrar à medida que os scanners de e-mail mudam suas táticas.
Tenho certeza de que esse problema tem muitas pessoas diante de mim. Existem soluções razoáveis conhecidas, além de desistir da funcionalidade de clique único?
PS. Eu adicionei suporte ao RFC 8058, mas os usuários ainda clicam em links no rodapé.