私はPHPネイティブmail()
関数を使用してHTMLメールを送信していますが、ユーザーの最も一般的なメールクライアントであるOutlook 2007(他のいくつかのメールクライアントに加えて)でフォーマットの問題があります-すべてのhtmlタグが公開されているため、非Web開発者。
PHPのマニュアルでデモするのと同じ方法でHTMLメールを送信しています。例:
$message = get_HTML_email_with_valid_formatting();
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "From: example.com <info@example.com>\r\n";
$headers .= "Reply-To: donotreply@example.com\r\n";
mail('me@example.com', 'test', $message, $headers);
さまざまな電子メールクライアントのテストは難しいため、 http://litmusapp.com/にサインアップして、47の異なる電子メールクライアントの電子メールのスクリーンショットを見ることができます。ほとんどは問題ありませんが(Gmail、Thunderbird、Lotus Notesなど)、Outlookのすべての異なるバージョンは問題ありません。
フォーマットの問題を修正するために、私は次のことを行いました。
$headers = "MIME-Version: 1.0\r\n";
メールヘッダーを削除します。- ヘッダーを「
\n
」ではなく「」のみで終了するようにしてください\r\n
。
マニュアルに準拠していないのに、なぜHTMLメールでより良い結果が得られるのか誰かが知っていますか?
情報:
- RHEL5.5でpostfixバージョン2.3.3を使用しています。
- PHPバージョン5.3.2