2012-02-01 10 views
7

estoy tratando de enviar un correo usando Zend_Mail usando el siguiente código:Zend_Mail con personajes franceses en el cuerpo del mensaje

function sendMail() { 

    $config = array('auth' => 'login', 
       'username' => 'UserName', 
       'password' => 'Password', 
       'port'=>'27');  

    $mail = new Zend_Mail(); 

    $mail->setBodyText($mailBody); 

    $mail->setFrom('[email protected]', 'The Company Name'); 
    $mail->addTo('[email protected]', 'Recipient Name'); 
    $mail->setSubject('Mail subject');  
    $mail->send(new Zend_Mail_Transport_Smtp('[email protected]', $config)); 
} 

Ahora el problema es que tiene caracteres $mailBody fritas. por ejemplo:

Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande 

Cuando el correo enviado se vieron entonces la misma línea aparece así:

Merci d'avoir pass? commande avec Lovre. Voici le r?capitulatif de votre commande 

Los acentos fueron reemplazados por un signo de interrogación! Traté de codificar el cuerpo del correo usando utf8_encode, pero el problema aún persistía.

Nota: El contenido del cuerpo se lee de un archivo de texto usando file_get_contents.

+0

¿Se aseguró de que el archivo de texto tenga la codificación correcta? Puede verificarlo en un editor de texto. Hacer eso y construir 'Zend_Mail' con la opción' UTF-8' (como se sugiere a continuación) debería ser suficiente. – bububaba

Respuesta

21

usted tiene que fijar la codificación UTF-8 en Zend_Mail constructor:

$mail = new Zend_Mail('UTF-8'); 

Asegúrese también de que $ cuerpo del correo contiene texto UTF-8.

+1

+1, simple y conciso. – philwinkle

+1

¿hay alguna manera de configurar 'UTF-8' en la $ configuración global? Me gusta esto: Zend_Mail :: setDefaultTransport (new Zend_Mail_Transport_Smtp ('smtp.gmail.com', $ config)); – adamnyberg

1

Utilice:

$mail->setBodyHtml(); 

en lugar de:

$mail->setBodyText(); 

el problema serán cortas a cabo.

+0

En realidad lo intenté y no funcionó. – Songo

+1

Lo ha intentado $ mail = new Zend_Mail ('utf-8'); –

+0

sí, lo intenté también y todavía no funciona. – Songo

Cuestiones relacionadas