1

当网站所有者收到基于表单输入的电子邮件时,我希望有粗体标签......

像这样...

名称: $名称

电话: $电话

电子邮件地址: $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;

我希望标签以粗体显示。上面,我在事件描述中添加了标签来尝试加粗,但它没有加粗。

这是我设置标题的方式...

$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,这是一个额外的行。
  • 安全。phpMailer 将验证地址和其他字段,并防止黑客使用您的系统发送垃圾邮件(如果您正在编写自己的标头,那么您很容易受到攻击)。
  • 发送给多个收件人?多打AddAddress几次就行了。
于 2013-08-12T15:39:44.190 回答