2

変数$bodyに含まれているメッセージを送り返すメール関数を使用しています。太字の特定の単語といくつかのブレークタグを付けてメッセージを自分に送信したいと思います。

これが私のコード(ヒアドキュメント構文)です:

$body = <<<CTS
<h1><b>Order for $name on datevariable</b></h1><br /><br />

<b><u>Administrative Details</u></b><br />
<b>Employee ID:</b> $id<br />
<b>Cost Center:</b> $cost_center<br />
<b>Approved By:</b> $approved_by<br />
<b>Delivery Bldg:</b> $delivery_bldg<br />
<b>Delivery Contact Email:</b> $delivery_contact<br />
<b>Ext:</b> $del_contact_ext<br />
CTS;

何らかの理由でメールを受信すると、次のようになります。

<h1><b>Order for James Important on datevariable</b></h1><br /><br />
<b><u>Administrative Details</u></b><br />
<b>Employee ID:</b> 213123<br />
<b>Cost Center:</b> 132123<br />
<b>Approved By:</b> Chris Seckla<br />
<b>Delivery Bldg:</b> 6<br />
<b>Delivery Contact Email:</b> test@email.com<br />
<b>Ext:</b> 56<br />

変数値を入力しますが、何らかの理由でhtmlタグを無視します。誰かがこれを修正する方法を教えてもらえますか?

また、ブレークタグを無視し、空白の行を残したときにのみブレークを配置します。これについて何かアイデアはありますか?

4

4 に答える 4

16

これが電子メールの場合、mimeタイプをtext/plainではなくtext/htmlに設定する必要があります。それ以外の場合、電子メールリーダーはメッセージをプレーンテキストとして解釈し、すべてのhtmlタグを無視します。

たとえば、次のmailような関数を呼び出しているとします。

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

では$headers、これらの線に沿って何かが必要になります(もちろん、特定のケースに合わせて調整されます)。

$headers = "From: webmaster@example.com\r\n";
$headers .= "Reply-To: webmaster@example.com\r\n";
$headers .= "Content-Type: text/html";

プレーンテキストとHTMLメールの両方を送信する場合(HTML以外の読者は、これらすべてのタグがないクリーンなバージョンのメールを見ることができます)、マルチパートメールの詳細については、このチュートリアルを参照することをお勧めします。

于 2009-05-27T03:25:19.467 に答える
3

電子メールをhtml形式で表示するには、phpから送信するときに追加のヘッダーを設定する必要があります。

コンテンツタイプ:text / html; charset=何でも

于 2009-05-27T03:25:07.233 に答える
3

HTMLであることを示すヘッダーを送信してください...

例:

mail('email@domain.com', 'Subject',
'<html><body><b>Hello</b></body></html>',
"To: The Receiver <recipient@domain.com>\n" .
"From: The Sender <email@domain.com>\n" .
"MIME-Version: 1.0\n" .
"Content-type: text/html; charset=iso-8859-1"); 
于 2009-05-27T03:27:20.303 に答える
0

PHPでメールを送信したい場合は、プレーンメール機能の代わりにPEARMail_Mimeパッケージを使用することをお勧めします

于 2009-05-27T14:22:43.493 に答える