5

私のコード:

$to      = 'example@example.com';
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
$header = "From: noreply@example.com\r\n"; 
$header.= "MIME-Version: 1.0\r\n"; 
$header.= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$header.= "X-Priority: 1\r\n"; 

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

メッセージに ,などの特殊文字を含むメールを送信すると®ð-˚©-ʼ“æ,˚ˍðß©、機能しますが、スペースは処理されなくなります (すべての改行またはスペースが削除されます) そして、2 つ目の問題は、件名に特殊文字が表示されないことです。次のように出力されます。øʼªʼ

前もって感謝します!

4

4 に答える 4

11

コンテンツタイプ: text/html

このヘッダーを設定すると、ユーザーに HTML を送信する必要があります。TinyMCE のようなものを使用して、ユーザーが Word スタイルのエディターでメッセージを書き、そこからの HTML 出力を使用できるようにすることもできます。または、ヘッダーをプレーンテキストに設定します。

コンテンツ タイプ: テキスト/プレーン

編集:これを試してください

$to      = 'example@example.com';
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
$header = "From: noreply@example.com\r\n"; 
$header.= "MIME-Version: 1.0\r\n"; 
$header.= "Content-Type: text/plain; charset=utf-8\r\n"; 
$header.= "X-Priority: 1\r\n"; 

mail($to, $subject, $message, $header);
于 2013-03-06T14:41:42.893 に答える
3

私はこのヘッダーを使用しましたが、これはうまくいきました...

$headers = '';
$headers = 'MIME-Version: 1.0'.PHP_EOL;
$headers .= 'Content-type: text/html; charset=iso-8859-1'.PHP_EOL;
$headers .= 'From: webmaster@example.com<From: webmaster@example.com>'.PHP_EOL; 
于 2014-07-10T06:29:15.557 に答える
1

mail() 関数を使用しないでください。あなたのために(正しく)仕事をする完全に細工されたクラスを使用してください。

http://code.google.com/a/apache-extras.org/p/phpmailer/

于 2013-03-06T15:16:45.720 に答える
0

コードの問題は、特殊文字にも「特別な」文字セットが必要であるためです。

charset=ISO を charset=UTF8 に変更してみてください...

また、PHP の mail() 関数は正常に動作しますが、 Swift Mailerのようなより優れたソリューションを使用すると、より多くの利点とオプションが見つかります。

于 2013-03-06T14:45:30.277 に答える