jueves, abril 14, 2005

Cómo no usar mailto :::OutLook:::

Cómo no usar mailto

Existen un error comun en el diseño web, relacionados con el esquema de URLs mailto. Además de ser errores muy comunes, sus consecuencias pueden ser bastante graves (incluso pueden perderse mensajes sin que nadie se entere), por lo que es importante saber cuáles son estos errores y cómo evitarlos.

Error número 1: Poner parámetros en los URLs mailto
Es muy normal encontrar páginas con cosas de este estilo:

Contacte con nosotros!

Esto es incorrecto por el siguiente motivo:

El elemento A, según las especificaciones de HTML, tiene un atributo opcional HREF, cuya función es la siguiente:

Este atributo especifica la localización de un recurso de la Web, definiendo así un vínculo entre el elemento actual (el origen del vínculo) y el destino del vínculo definido por este atributo. (http://html.conclase.net/w3c/html401-es/struct/links.html#adef-href)

El valor de este atributo es un URI (identificador uniforme de recursos, ver http://www.ietf.org/rfc/rfc2396.txt para su definición formal), el cual puede ser, por ejemplo, un URL tipo mailto. Naturalmente, éste debe ser un URL válido.

Los URLs del tipo mailto están especificados, como el resto de URLs, en "Uniform Resource Locators (URL)", sección 3.5, que traduzco a continuación:

3.5. MAILTO

El esquema de URLs mailto se usa para designar una dirección de correo de Internet de un individuo o servicio. Aparte de una dirección de correo de Internet, no hay ninguna otra información adicional presente o implícita.

Un URL mailto tiene la siguiente forma

mailto:
donde es (la codificación de un) addr-spec, según se especifica en RFC 822 [declarada obsoleta por RFC2822]. Dentro de un URL mailto no hay caracteres reservados.

Obsérvese que el signo de tanto por ciento ("%") se usa normalmente dentro de direcciones RFC 822 y debe ser codificado.

A diferencia de otros muchos URLs, el esquema mailto no representa un objeto de datos al que pueda accederse directamente; no designa un objeto en ningún sentido. Tiene una utilización diferente a la del tipo MIME message/external-body. (http://www.ietf.org/rfc/rfc1738.txt)

En el RFC2822, "Internet Message Format" se define un addr-spec del siguiente modo (sección 3.4.1):

3.4.1. Especificación de addr-spec

Un addr-spec es un identificador específico de Internet que contiene una cadena interpretada localmente, seguida del símbolo arroba ("@", valor ASCII 64), seguida de un dominio de Internet. [...]

addr-spec = local-part "@" domain
(http://www.ietf.org/rfc/rfc2822.txt)

Es decir, un enlace HTML cuyo atributo HREF sea un URL del esquema mailto no puede contener más información que la dirección de correo electrónico vinculada: ni asunto, ni cuerpo, ni nada. Sólo la dirección de correo.

El hecho de que funcione en algunas o en muchas combinaciones navegador web/cliente de correo, no quiere decir que funcione en todas, ni que tenga que funcionar, ni que vaya a funcionar en el futuro. Su comportamiento es esencialmente impredecible, porque es incorrecto. Lo que sí se puede esperar es que habrá situaciones en las que no funcionará.

Además no tendría ninguna utilidad para usuarios que no utilicen un cliente de correo (por ejemplo porque usan correo web).