Me gustaría proporcionar un solo clic en los enlaces "Cancelar suscripción" en el pie de página de los correos electrónicos que envía mi servicio.
Obviamente, muchos escáneres de spam escanearán correos electrónicos y seguirán cualquier enlace que se encuentre en los correos electrónicos para escanear sus contenidos en busca de malware. Una solución que he usado hasta ahora:
- Si se solicita la página "Cancelar suscripción" a través de HTTP GET, se muestra un formulario de confirmación simple y un poco de JS que envía el formulario al cargar la página
- Si se solicita la página "Cancelar suscripción" a través de HTTP POST, cancelaremos la suscripción del usuario
De esta manera, el usuario generalmente solo necesitará un solo clic en el formulario y recibirá el mensaje "Se ha cancelado su suscripción". Si tienen JS deshabilitado, aún pueden enviar manualmente el formulario de confirmación.
Ahora el problema es que algunos escáneres como el ATP de Office365 abrirán las páginas y ejecutarán JS dentro de ellas . Al ejecutar JS, envían el formulario y hacen que el usuario se dé de baja automáticamente.
He considerado agregar controles a la lógica JS de envío automático:
- no envíe automáticamente para agentes de usuario específicos
- no envíe automáticamente para intervalos de IP de clientes específicos
- desencadenar el envío automático al mover el mouse
Pero todos estos parecen métodos frágiles, piratas en el mejor de los casos, que seguramente se romperán a medida que los escáneres de correo electrónico cambien sus tácticas.
Estoy seguro de que este problema ha mordido a muchas personas antes que yo. ¿Hay soluciones razonables conocidas, además de renunciar a la funcionalidad de un solo clic?
PD. He agregado soporte para RFC 8058 pero los usuarios todavía van a hacer clic en los enlaces en el pie de página.