1

サイト所有者がフォーム入力に基づいてメールを受信したときに、太字のラベルが欲しい...

このような...

名前: $name

電話: $phone

メールアドレス: $email

などなど…

しかし、正しく表示されません。

メールの設定はこんな感じ…

$msg  = "You have been contacted by $name with regards to $subject. Their message is as follows:";
$msg .= "" . PHP_EOL;//Line Break
$msg .= "Name:".$name . PHP_EOL . PHP_EOL;
$msg .= "Phone:".$phone . PHP_EOL . PHP_EOL;
$msg .= "Email Address:".$email . PHP_EOL . PHP_EOL;
$msg .= "Low Budget:".$budgetlow . PHP_EOL . PHP_EOL;
$msg .= "High Budget:".$budgethigh . PHP_EOL . PHP_EOL;
$msg .= "Venue Name:".$venuename . PHP_EOL . PHP_EOL;
$msg .= "Event Capacity:".$eventcapacity . PHP_EOL . PHP_EOL;
$msg .= "<strong>Event Description:</strong>".$eventdescription . PHP_EOL . PHP_EOL;
$msg .= "" . PHP_EOL . PHP_EOL; //Line Break
$msg .= "You can contact $name via email at $email or via phone at $phone." . PHP_EOL . PHP_EOL;

ラベルを太字で表示したい。上記で、 Event Descriptionにタグを追加して太字にしてみましたが、太字になりません。

これが私のヘッダーの設定方法です...

$headers  = "From: $email" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-Type: text/plain; charset=us-ascii" . PHP_EOL;
$headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
4

1 に答える 1

2

プレーン テキストのメールを送信していますが、<strong>タグを使用して一部を太字にしようとしています。

これはうまくいきません。プレーン テキストの電子メールは、プレーン テキストとしてのみ表示されます。HTML マークアップで送信する場合は、全体を HTML ドキュメントにして、HTML コンテンツ タイプで送信する必要があります。

また、 phpMailerSwiftmailerなどの適切な PHP メーラー ライブラリを使用することを強くお勧めします。これにより、 HTML 形式の電子メールの送信が非常に簡単になります。ヘッダーを完全にセットアップするために必要なすべてのコードを取り除くことができます。ライブラリは、この種のことをすべて処理します。

[編集]

わかりました、これがいかに簡単かを証明するために、デモ用のコードをいくつか示してみませんか? phpMailer を使用していると仮定しましょう。コードは次のようになります。

//somewhere at the top of your program
require('/path/to/phpMailer.class.php');

//your existing $msg code, but with <br> tags instead of PHP_EOL
$msg = ....

//this bit replaces your header block...
$mail = new PHPMailer();
$mail->From = 'from@example.com';
$mail->AddReplyTo('info@example.com', 'Information');
$mail->AddAddress('recipient@example.net');
$mail->IsHTML(true);
$mail->Subject = 'Here is the subject';
$mail->Body    = $msg;

//and send it (replaces the call to php's mail() function)
$mail->send();

それは本当に簡単です。真剣に。特に初心者の場合は、メール ヘッダーを手作業でコーディングするよりも、この方法で正しく処理できる可能性が高くなります。それはただクレイジーです。

しかし、もっと重要なことは、他の機能のスタック全体を追加することです.

  • 添付ファイルを含めたいですか?ライブラリがなければ、コードの山になってしまいます。phpMailer では、1 行余分に追加されます。
  • 安全。phpMailer はアドレスやその他のフィールドを検証し、ハッカーがシステムを使用してスパムを送信するのを防ぎます (独自のヘッダーを作成している場合、攻撃に対して脆弱である可能性が高くなります)。
  • 複数の受信者に送信しますか? AddAddress何回も電話するだけ。
于 2013-08-12T15:39:44.190 に答える