PHPMailer输出标签

时间:2013-08-12 14:58:09

标签: phpmailer php

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

喜欢这个......

名称: $ 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;

我希望标签以粗体显示。在上面,我已经为 事件描述 添加了标签以尝试加粗,但它并没有大胆出现。

以下是我设置标题的方法......

$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;

1 个答案:

答案 0 :(得分:1)

您发送了纯文本电子邮件,但是您尝试通过添加<strong>标记来使其部分内容变为粗体。

这不起作用。纯文本电子邮件只会以纯文本形式显示。如果要使用HTML标记发送它,则需要将整个内容转换为HTML文档,并使用HTML内容类型发送它。

我还强烈建议使用像phpMailerSwiftmailer这样不错的PHP邮件程序库。这将使 lot 更容易发送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