TigerZF
🌐Español

45.11. Codificación

Los cuerpos de mensajes de texto y HTML se codifican con el mecanismo quotedprintable de forma predeterminada. Las cabeceras de los mensajes también se codifican con el mecanismo quotedprintable si no se especifica base64 en setHeaderEncoding(). Si se utiliza un idioma que no se basa en letras romanas, base64 sería más adecuado. Todos los demás adjuntos se codifican mediante base64 si no se indica otra codificación en la llamada a addAttachment() o se asigna al objeto de la parte MIME más adelante. La codificación 7Bit y 8Bit actualmente solo transmiten los datos de contenido binario.

La codificación de cabeceras, especialmente la codificación del asunto, es un tema delicado. Zend_Mime implementa actualmente su propio algoritmo para codificar cabeceras quoted printable según la RFC-2045. Esto se debe a los problemas de iconv_mime_encode() y mb_encode_mimeheader() con respecto a ciertos conjuntos de caracteres. Este algoritmo solo corta la cabecera en los espacios, lo que puede llevar a cabeceras que superen ampliamente la longitud sugerida de 76 caracteres. Para estos casos se sugiere cambiar a la codificación de cabeceras BASE64, tal como describe el siguiente ejemplo:

// By default Zend_Mime::ENCODING_QUOTEDPRINTABLE
$mail = new Zend_Mail('KOI8-R');

// Reset to Base64 Encoding because Russian expressed in KOI8-R is
// different from Roman letters-based languages greatly.
$mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64);

Zend_Mail_Transport_Smtp codifica las líneas que empiezan con uno o dos puntos para que el correo no viole el protocolo SMTP.