2009-06-06 9 views
1

J'ai un problème avec l'envoi d'un courriel en persan. C'est OK sur Gmail, tout le texte montre bien. Mais dans les ordres comme yahoo, cpanel webmail, etc, je reçois des caractères inconnus. Que dois-je faire pour résoudre ce problème?Problème avec l'envoi de courrier électronique, caractères inconnus!

Voici mon code:

<?php 
function emailHtml($from, $subject, $message, $to) { 
    require_once "Mail.php"; 

    $headers = array ('MIME-Version' => "1.0", 'Content-type' => "text/html; charset=utf-8;", 'From' => $from, 'To' => $to, 'Subject' => $subject); 

    $m = Mail::factory('mail'); 

    $mail = $m->send($to, $headers, $message); 
    if (PEAR::isError($mail)){ 
     return 0; 
    }else{ 
     return 1; 
    } 
} 
?> 

J'utilise le courrier PEAR à l'envoi d'e-mail.

Répondre

2

Vous devez instancier un Mail_Mime, définir les en-têtes et le corps HTML, les récupérer de votre instance MIME et les transmettre à votre instance Mail. Pour citer le example des docs:

<?php 
include('Mail.php'); 
include('Mail/mime.php'); 

$text = 'Text version of email'; 
$html = '<html><body>HTML version of email</body></html>'; 
$file = '/home/richard/example.php'; 
$crlf = "\n"; 
$hdrs = array(
       'From' => '[email protected]', 
       'Subject' => 'Test mime message', 
       'Content-Type' => 'text/html; charset="UTF-8"' 
      ); 

$mime = new Mail_mime($crlf); 

$mime->setTXTBody($text); 
$mime->setHTMLBody($html); 
$mime->addAttachment($file, 'text/plain'); 

//do not ever try to call these lines in reverse order 
$body = $mime->get(); 
$hdrs = $mime->headers($hdrs); 

$mail =& Mail::factory('mail'); 
$mail->send('[email protected]', $hdrs, $body); 
?> 

J'ai édité l'exemple de la documentation ci-dessus pour inclure l'en-tête Content-Type. Il est conseillé de rendre votre corps de message disponible en texte brut ainsi que HTML, dans le cas où le HTML n'est pas supporté par le client. De plus, vous n'aurez pas besoin des parties liées à l'ajout de pièces jointes, mais je les ai laissées pour des raisons de connaissance.

Questions connexes