0

PHP で mail() 関数を使用して、ウェブサイトのメンバーにメールを送信しようとしています。

メールはヘブライ語で、HTMLメールを送信したいのですが、

それは私がそれを送る方法です

$mail_to = "Email@domain.com";
$message = "
<html>
some content here
</html>
";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=windows-1255" . "\r\n";
$headers .= 'From: "MyWebsiteName" <support@domain.com>' . "\r\n";

$mail = mail($mail_to, $subject, $message, $headers );

Gmail やサンダーバード ユーザーなどのクライアントでは問題なく動作しますが、それほど有名ではないが、私の国ではまだ広く使用されている他のいくつかのクライアントで表示したところ、html ソースが表示されるだけでした。また、これらのクライアントで正常に動作している他のメールを見たことがあるので、それらは HTML メールをサポートしていることも付け加えておきます。

私は何を間違っていますか?

編集:

ヘッダーを表示しましたが、奇妙なことに、これらはヘッダーです。

MIME-version: 1.0
X-Mailer: aspNetEmail ver 4.0.0.6
Content-type: text/html; charset=UTF-8

Content-transfer-encoding: quoted-printable
SLNG_REVERSE_PATH: mail@domain.co.il
DT: 2
DB: 1
QueueCmd: 1
List-Unsubscribe: <mailto: mail@domain.co.il>
Original-recipient: rfc822;myemail@domain.com

これらは私のものです:

Message-id: <20120913143702.10413.qmail@www022.inter.co.il>
MIME-version: 1.0
Content-type: TEXT/PLAIN
Content-transfer-encoding: 8BIT
Original-recipient: rfc822;myemail@domain.com

Content-type:text/html;charset=windows-1255

なんらかの理由で TEXT/PLAIN が追加されたようですが、どうしてですか?

4

5 に答える 5

2

編集後:

Content-type ヘッダーの前に改行が多すぎて、メールの本文の一部になっています。一部のクライアントは、この誤った形式を検出したり、HTML コンテンツを認識したりします。他の人は、テキスト/プレーンまたはメールサーバーがテキスト/プレーンヘッダー自体を追加すると想定します。これは、何も指定していないと考えているためです。

于 2012-09-13T16:11:39.473 に答える
0

mail()PHP の関数を使用しないことを強くお勧めします。単純なテキストのみのメッセージを単一のアドレスに送信するなど、非常に基本的なことを行う場合を除き、目的には適していません。

もう少し複雑な場合は、phpMailer クラスを使用することをお勧めします。

phpMailer を使用すると、複雑なメールを PHP で簡単に処理できます。HTML メッセージ、添付ファイル、複数の受信者、およびその他の多数の機能を、すべて非常にシンプルで使いやすい API で処理します。

詳細については、以前に書いた別の回答も参照してください: Send attachment with PHP Mail()?

于 2012-09-13T16:15:56.567 に答える
0

はヘブライ語なので、試してみてください:

$headers .= "Content-Type: text/html; charset=utf-8\r\n";

私はギリシャ語のメールでこれを使用します

于 2012-09-13T18:36:08.937 に答える
0

私の視点から - 何もありません。HTML を読み取る場合は、クライアントが のコンテンツ タイプを読み取ることができないためですtext/html。私の解決策?マルチパート メールを作成し、 と の両方text/htmlを含めますtext/plain。必要に応じて、Web ページ内にメールを保存します。text/html を送信する場合は、そのまま送信してください。text/plain を使用して、メールを保存する Web ページへのリンクを送信します。

また、次のようにスペースを追加してみてください。

Content-type: text/html; charset=windows-1255

それが何かを変えるかどうかはわかりませんが、誰が知っていますか。ちなみに、ここでは連結は役に立ちません。

于 2012-09-13T15:38:46.873 に答える
0

試すContent-type: text/html; charset="iso-8859-8"

于 2012-09-13T15:49:34.417 に答える