Creación de correo de Outlook con caracteres suecos desde la página web codificada en UTF-8

Tengo un sitio web basado en una base de datos, escrito en php, que necesita crear correos electrónicos a partir de los datos. Todos los datos y cada página están codificados en UTF-8 y contienen muchos de los caracteres suecos åäö. Tengo lo siguiente en mi mailto-link:

Mailto-link 

y el cuerpo del correo electrónico debe salir como

 Hej! åäöÅÄÖ 

Esto funciona usando Internet Explorer 8 y Firefox al menos (no se han probado en Chrome o Safari) con Outlook 2007. Sin embargo, en Internet Explorer 7 o anterior, el åäö aparece como caracteres extraños. Muchos de nuestros clientes están atrapados con IE 6 y 7. ¿Alguna sugerencia sobre cómo hacer que esto funcione?

Creo que la cantidad de posibles combinaciones de navegadores / clientes de correo electrónico le dará una cantidad infinita de problemas si intenta resolverlos con un enlace “mailto:”. En teoría, la encoding de URL debería funcionar, pero cuando me metí en esto en el pasado, me di cuenta de que era más fácil simplemente enviar correos electrónicos desde PHP.

Sin embargo, esto trae otros desafíos, como asegurarse de que no permita que los remitentes de correo no deseado utilicen su servidor como puerta de enlace de correo electrónico (por ejemplo, usar números de identificación de contacto en lugar de direcciones de correo electrónico en el formulario). Captcha y la limitación de velocidad es probablemente una buena idea también.

Si alguna vez enfrenta un problema como este, simplemente coloque el contenido que está causando el problema en esta statement de alerta de Javascript y péguelo en la barra de direcciones de un navegador decente como Opera o Firefox.

 javascript:alert(escape("problem-string-here")); 

Por ejemplo, si ejecuta

  javascript: alert (escape ("åäöÅÄÖ")); 

obtendrás %E5%E4%F6%C5%C4%D6 . Puede copiar el texto que muestra la statement de alerta y luego usarlo en su enlace mailto:

mailto: name@domain.tld? body = Hey!% 0a% E5% E4% F6% C5% C4% D6

La URL que codifica los caracteres también (no solo los saltos de línea) podría ser útil. En PHP, la función correcta sería urlencode() .