2011-01-06 5 views
0

私は1つの小さな事実を除いてうまく動作するphpメールスクリプトを持っています。 Outlook(すべてのバージョン)では、電子メールはgibrishになります。電子メールが(Gmail.comのような)インターネットブラウザを介して読まれるなら、それは問題ありません。電子メールをOutlookでもうまく見せることは可能でしょうか?私はHTMLとして電子メールで送信しようとしましたが、まだ役に立たない。forgeinの言語でPHPを使ってメールを送る

必要であれば、私は完全なコードを投稿することができますが、それは次のようになります。

これらのヘッダは以下のとおりです。

mail ($to, $subject, $message, $headers); 

$email = $_REQUEST['email']; 
$headers = 'From: ' . $email . "\r\n" . 
      'Reply-To: ' . $email . "\r\n" . 
      'X-Mailer: PHP/' . phpversion(); 
$headers .= "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-Type: Text/plain; charset=ISO-8859-8"; 

は、メール()関数を使用しています私は多分着信Outlookメッセージを別々にエンコードする方法を見つけようとしましたが、私は(1)そうする方法を見つけることができませんでした。(2)多くの人に行くはずですから。

EDIT:以下の行を追加すると、メッセージはブラウザとOutlookの両方で適切にレンダリングされます。これが誰かを助けることを願って!

//convert to utf-8 
$message = mb_convert_encoding($message , 'ISO-8859-8' , 'utf-8'); 

ありがとうございます! アミット

+0

あなたはヘブライ語で作業していると思われますか?それは、ブラウザで動作することを確認して以来、特にPHPではなくOutlookでの問題のようです。おそらく、それはWindowsおよび/またはOutlookと関連しています。 – Moshe

+0

@Moshe:はい、ヘブライ語です。それは間違いなくOutlookのレンダリングの問題です。私はPHPエンコーディングで解決することができましたが、解決のためにEDITを参照してください – Amit

+0

ちょっと、あなたはそれが働いていることを確認してください。私はエンコーディングに気付いたが、あなたが何をしているのか分かっていた。 – Moshe

答えて

3

は、かなり容易では変更する必要がありますcharset=ISO-8859-8また

作成ページがデータベースを使用する場合は、テーブル(または全体デシベル)がUTF-8 unicode general

であることを UTF-8としてエンコードとされていることを確認し charset=UTF-8

UTF-8とすると、表示されている文字を書くことができます。エンティティは使用しないでください。

+0

これはうまくいくと思います。解決策を見つけるのにかなり時間がかかりましたので、問題のEDITセクションの下で私のために働いたものを投稿しました。入力いただきありがとうございます – Amit

+0

@Amit rad、うまくいきました –

関連する問題