Encontramos un bug en la clase HtmlMimeMail, donde si utilizabas dos palabras seguidas con tildes en el asunto del mensaje a enviar, el programa juntaba ambas palabras.
Esto pasaba por la codificación de caracteres que se puede ver con este ejemplo:
Asunto: … Carné de Especialista en Instalación de Tuberías Plásticas …
La codificación de caracteres enviada era la siguiente:
Subject: =?ISO-8859-1?Q?Carn=E9?= de Especialista en =?ISO-8859-1?Q?Instalaci=F3n?= de =?ISO-8859-1?Q?Tuber=EDas?= =?ISO-8859-1?Q?Pl=E1sticas?=
Donde podemos observar que el espacio entre esas palabras no lo codificaba bien.
Para solucionar este problema, simplemente hay que hacer los siguientes cambios en la función _encodeHeader de la clase htmlMimeMail:
function _encodeHeader($input, $charset = ‘ISO-8859-1’) {
preg_match_all(‘/(\w*[\x80-\xFF]+\w*)/’, $input, $matches);
$codex = 0 ;
foreach ($matches[1] as $value) {
$codex = 1;
$replacement = preg_replace(‘/([\x80-\xFF])/e’, ‘»=» . strtoupper(dechex(ord(«\1»)))’, $value);
$input = str_replace($value, ‘=?’ . $charset . ‘?Q?’ . $replacement . ‘?=’, $input);
}
if ($codex==1)
$input = str_replace(‘ ‘,’=?’ . $charset . ‘?Q?’ . ‘=20’ . ‘?=’, $input);
return $input;
}
De esta forma solucionamos el problema. Hemos encontrado la solución en esta pagina.