Últimamente me tiene descolocado el filtro Anti-Spam de la UPV. Tomemos como ejemplo 3 mensajes que he recibido últimamente:
De | Para | Asunto |
Aisha Brand | ocultado@spam.no | Every woman will fall in love with you when she sees your size. |
Frederick Parra | ocultado@spam.no | More orgasms |
RealNetworks | ocultado@spam.no | [SPAM *****] Optimice el rendimiento de su PC en minutos |
Aunque los dos primeros son claramente ‘spam‘ (correo basura) y el tercero es ‘comercial que puede ser interesante‘, para el filtro del servidor de correo es, justamente, lo contrario.
¿Cómo funciona mi filtro ‘natural’ anti-spam?
- Los dos primeros mensajes van dirigidos a cuentas (o listas de correo) que no tienen nada que ver conmigo
- El asunto habla de sexo ¡haciendo promesas!
- No conozco de nada a los remitentes
=> SPAM
- el tercer mensaje va dirigido a mi cuenta de correo
- el remitente es una empresa conocida, dedicada al mundo de la informática y tiene mis datos porque yo se los he dado
- el asunto tiene que ver, más o menos, con mi trabajo
- el mensaje utiliza DKIM para garantizar que la dirección del remitente pertenece al servidor de correo emisor (nuestro servidor no usa esta tecnología y no nos indica nada al respecto)
=> COMERCIAL
El hecho de que estén redactados en inglés o en castellano no es significativo, ya que habitualmente recibo correos en ambos idiomas. Ahora bien, en mi cuenta de correo personal sí que habría influido en mi decisión que el idioma no fuese castellano/valenciano.
¿Cómo funciona el filtro anti-spam del servidor de correo?
A partir de las cabeceras de los mensajes y del contenido del mismo, se va puntuando el correo siguiendo unas reglas predefinidas.
- al primer mensaje se le aplican las reglas: PENIS_ENLARGE + HTML_40_50. Poca cosa: 1.6 puntos (el mínimo para considerarlo spam es 5.0)
- en el segundo mensaje se encuentra un único problema: HTML_TITLE_EMPTY (0.5 puntos)
- el tercer mensaje hace que salten las siguientes alarmas (5.7 puntos):
pts | rule name | description |
2.8 | X_MAIL_ID_PRESENT | Message has X-MailingID header |
1.0 | HTML_IMAGE_ONLY_12 | BODY: HTML: images with 1000-1200 bytes of words |
0.0 | HTML_MESSAGE | BODY: HTML included in message |
0.1 | HTML_FONT_BIG | BODY: HTML has a big font |
0.1 | HTML_TAG_EXISTS_TBODY | BODY: HTML has «tbody» tag |
0.1 | HTML_70_80 | BODY: Message is 70% to 80% HTML |
0.1 | MIME_HTML_ONLY | BODY: Message only has text/html MIME parts |
0.5 | HTML_TITLE_EMPTY | BODY: HTML title contains no text |
0.8 | REMOVE_PAGE | URI: URL of page called «remove» |
0.2 | HTTP_WITH_EMAIL_IN_URL | URI: ‘remove’ URL contains an email address |
¿Qué podemos aprender de este análisis?
Evitar que nos llegue spam es prácticamente imposible. Podemos establecer filtros a distintos niveles (en el servidor, en nuestro cliente de correo, con el Anti-Virus, …), pero siempre habrá falsos positivos y falsos negativos.
Si miramos este problema en sentido inverso, la pregunta es: ¿serán catalogados como spam los correos que envío?.
Teniendo en cuenta los filtros típicos de las herramientas anti-spam, podemos seguir unas pautas para evitar ser tratados como spammers:
- Si redactas el correo con formato HTML, ofrece también el contenido del mismo con formato TEXTO
- En HTML es obligatorio especificar el título del documento con la etiqueta TITLE => utilízalo en tus mensajes
- Las imágenes alegran los mensajes, pero no ofrezcas contenido dentro de las imágenes
- Ni se te ocurra emplear la palabra ‘remove’ dentro de enlaces (lo más normal de este mundo)
- No generes URL con direcciones de correo embebidas
- Y, sobre todo, ¿realmente necesitas utilizar el formato HTML para ese correo?