2009-06-06 11 views
1

ペルシャ語でメールを送信する際に問題が発生しています。 gmailでOkですが、すべてのテキストが正常に表示されます。しかし、ヤフー、cpanelウェブメールなどのような命令では、私は未知の文字を取得しています。これを修正するにはどうすればよいですか?私は電子メールを送信するPEARのメールを使用してい問題をメールで送信すると、不明な文字!

<?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; 
    } 
} 
?> 

は、ここに私のコードです。

答えて

2

Mail_Mimeをインスタンス化し、ヘッダーと本文HTMLを設定し、MIMEインスタンスから取得してMailインスタンスに渡す必要があります。ドキュメントからexampleを引用すると:

<?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); 
?> 

私は、Content-Typeヘッダを含めるように上記文書の例を編集しました。 HTMLがクライアントによってサポートされていない場合に備えて、メッセージ本文をプレーンテキストとHTMLの両方で利用できるようにすることをお勧めします。さらに、添付ファイルの追加に関連する部分は必要ありませんが、私は知識のために残しました。

関連する問題